2010-11-14 3 views
0

J'essaie de déboguer une erreur de violation d'accès dans du code natif, et j'ai la mini-sauvegarde pour le plantage.Les cadres de pile d'appel manquants lors du débogage d'un vidage sur incident avec Visual Studio

Lors de l'ouverture du vidage sur incident avec le studio visuel, voici ce qui se passe:

Si VS ne peut pas trouver les symboles pour ma DLL native problématique, il montre les images de la pile d'appel correct (y compris l'emplacement dans mon code la erreur est générée à partir de). Mais je ne peux pas voir les sources, bien sûr.

Si VS peut trouver les symboles (je les ai placés à l'emplacement correct et la fenêtre de sortie indique que les symboles pour MyProblematic.dll ont été chargés), je vois seulement une image dans la pile d'appel - msvcr90.dll. Évidemment cela ne m'aide pas beaucoup.

Quelqu'un peut-il expliquer cela?

Merci

Répondre

1

Eh bien, il est facile à expliquer. Si le cadre de la pile est corrompu, ni le preneur de minidump ni le débogueur ne peuvent marcher sur la pile pour vous en montrer plus. Facile à faire, par exemple juste strcpy() et débordement de la fin du tampon de pile de sorte que l'adresse EBP sauvegardée et l'adresse de retour soient écrasées. Et, oui, presque impossible à diagnostiquer, peu importe la qualité de la minidump. Bonne chance.

Questions connexes