2010-07-09 6 views
2

J'ai recherché sur ce problème et trouvé de nombreuses saveurs et idées mais pas de vraies solutions. Alors, enfiler ma combinaison d'amiante et espérer le meilleur, je vais oser le demander à nouveau.Le fichier de symboles MyFile.pdb ne correspond pas au module

J'ai géré le code C# qui appelle le code C++ géré, lequel à son tour appelle le code C++ non géré. Le code C++ non géré lance une exception et j'aimerais pouvoir le déboguer. Cependant, lorsque j'essaie de (explicitement, via la pile d'appels) charger les symboles, je reçois l'erreur redoutée "Le fichier de symboles MyFile.pdb ne correspond pas au module".

Je suppose qu'il s'agit d'un code d'erreur générique renvoyé, car les fichiers proviennent de la même version. L'utilisation de l'outil chkmatch semble confirmer que les fichiers correspondent bien.

Toute aide appréciée ... WTS

+0

Pourriez-vous développer (explicitement, via le Call Stack)? –

+0

Sûr - Je veux juste dire par un clic droit sur la DLL dans la fenêtre/l'onglet Pile d'appel, et en sélectionnant Charger les symboles. Je navigue jusqu'au répertoire qui contient la DLL et les fichiers PDB et sélectionne le fichier PDB. –

Répondre

1

Pourrait être utile de vérifier le chemin du dll chargé - vous utilisez celui que vous pensiez que vous où?

Si vous utilisez builds incrémentielle, vous pourriez aussi avoir besoin des fichiers Bid

J'ai eu un problème où MSVC ne voulait pas voir des symboles de débogage à l'époque, ne fonctionnait pas pourquoi, mais a travaillé autour du problème en utilisant CrashFinder ou windbg à la place. Peut-être qu'un redémarrage le fera fonctionner à nouveau.

Vous pouvez utiliser symstore au cours de votre build pour vous assurer que tous les pdbs sont capturés de manière plus fiable, de cette façon vous pouvez également déboguer sur plusieurs générations d'un fichier.

+0

comment le configurez-vous pour obtenir des fichiers * .idb? –

Questions connexes