J'ai le prochain workflow:Pourquoi je me suis trompé de symboles de débogage?
1) Construire des fichiers dll et pdb.
2) dll Partager sur cutomer
3) Analize vidage de la mémoire du client.
Quand je lance !analyze -v
dans WinDbg
je suis arrivé (ci-dessous une partie de la production)
....
MANAGED_STACK_COMMAND: _EFN_StackTrace
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS
BUGCHECK_STR: APPLICATION_FAULT_WRONG_SYMBOLS
// some callstack here
MODULE_NAME: RTPLogic
IMAGE_NAME: RTPLogic.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 58a43706
STACK_COMMAND: ~541s; .ecxr ; kb
FAILURE_BUCKET_ID: WRONG_SYMBOLS_c0000374_RTPLogic.dll!CSRTPStack::Finalize
BUCKET_ID: X64_APPLICATION_FAULT_WRONG_SYMBOLS_rtplogic!CSRTPStack::Finalize+1da
On dirait que nous avons symbole de débogage mauvais pour RTPLogic.dll
. Je télécharge l'outil ChkMatch
. je reçois chemin pdb de windbg
0:541> !lmi RTPlogic.dll
Loaded Module Info: [rtplogic.dll]
Module: RTPLogic
.....
Age: 1, Pdb: D:\Work\path_to_original_pdb\RTPLogic.pdb
Image Type: MEMORY - Image read successfully from loaded memory.
Symbol Type: PDB - Symbols loaded successfully from image header.
C:\ProgramData\dbg\sym\RTPLogic.pdb\9F82CDF359044635ADEBA578CA1D1D031\RTPLogic.pdb
Compiler: Resource - front end [0.0 bld 0] - back end [9.0 bld 21022]
Load Report: private symbols & lines, not source indexed
C:\ProgramData\dbg\sym\RTPLogic.pdb\9F82CDF359044635ADEBA578CA1D1D031\RTPLogic.pdb
Je les journaux liés à cette décharge et je vois que mes changements apparaissent dans les journaux. Donc, le client n'a pas oublié d'installer ma DLL avant d'obtenir le memdump. Je lance ChkMatch
PS D:\tools> .\ChkMatch.exe -c "D:\Work\path_to_dll\RTPLogic.dll" "C:\Progra
mData\dbg\sym\RTPLogic.pdb\9F82CDF359044635ADEBA578CA1D1D031\RTPLogic.pdb"
.....
Result: Matched
Comment il possible que je me suis mal symboles de débogage dans une telle situation?
C'est trop peu d'information, trop vague. Pourriez-vous poster une sortie concrète, s'il vous plaît? Quelle est la sortie exacte de ChkMatch, quel est le texte d'avertissement exact dans WinDbg. Quel est le chemin du symbole? Les deux outils utilisent-ils vraiment les mêmes fichiers? Publiez la sortie de 'lm',' .symopt' et '.sympath' dans WinDbg. Normalement, WinDbg ne charge pas du tout les symboles non-correspondants. Si c'est le cas, vous avez déjà "modifié" quelque chose –
Ok, mais maintenant il ressemble à une autre question –
Ce que vous avez ajouté à la question confirme ce que j'avais en tête. Je peux maintenant répondre à votre question avec plus de confiance.+1 pour le suivi et la fourniture des informations nécessaires –