Отсутствуют кадры стека вызовов при отладке аварийного дампа в Visual Studio - PullRequest
0 голосов
/ 14 ноября 2010

Я пытаюсь отладить ошибку нарушения доступа в каком-то нативном коде, и у меня есть мини-дамп для сбоя.

При открытии дампа сбоя в Visual Studio, вот что происходит:

Если VS не может найти символы для моей проблемной нативной DLL, он показывает правильные кадры стека вызовов (включая местоположение в моем коде, из которого генерируется ошибка).Но я не могу видеть источники, конечно.

Если VS может найти символы (я поставил их в правильном месте, и в окне вывода сказано, что символы для MyProblematic.dll были загружены), я толькоувидеть один кадр в стеке вызовов - это msvcr90.dll.Очевидно, это не очень мне помогает.

Может кто-нибудь объяснить это?

Спасибо

1 Ответ

1 голос
/ 14 ноября 2010

Ну, это легко объяснить.Если кадр стека поврежден, то ни мини-дамп, ни отладчик не смогут пройтись по стеку, чтобы показать вам больше.Легко сделать, например, просто strcpy () и переполнить конец буфера стека, так что сохраненный EBP и адрес возврата будут растоптаны.И, да, почти невозможно диагностировать, независимо от того, насколько хорошо качество минидампа.Удачи с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...