Как получить полный стек вызовов в Visual Studio 2005? - PullRequest
4 голосов
/ 21 сентября 2008

Как получить полный стек вызовов для приложения c ++, разработанного в Visual Studio 2005? Я хотел бы иметь полный стек вызовов, включая код в системных библиотеках.

Нужно ли менять некоторые настройки в Visual Studio или устанавливать дополнительное программное обеспечение?

Ответы [ 3 ]

6 голосов
/ 21 сентября 2008
  1. Получить отладочную информацию для всех зависимостей проекта. Это указывается в разделе «Свойства конфигурации -> C / C ++ -> Общие» свойств проекта.

  2. В меню выберите «Инструменты -> Параметры», затем выберите «Отладка -> Символы».

  3. Добавить новое расположение символов (значок папки), которое указывает на бесплатный сервер символов Microsoft «symsrv symsrv.dll c: \ symbols *http://msdl.microsoft.com/downloads/symbols

  4. Заполните поле «символы кэша» местами, чтобы вы не заходили в интернет все время.

0 голосов
/ 01 октября 2008

Или, при желании (при условии, что Visual Studio не установлена), получите копию Средства отладки Windows , установите и либо запустите приложение из отладчика (windbg.exe), либо подключите его к уже запущенное приложение:

windbg [.exe] -pn program.exe
или
windbg [.exe] -p process_id

Перерыв в отладчике в точке, которую вы хотите наблюдать за трассировкой стека (Ctrl + Break). Переключиться на интересующую нить (скорее всего, на основную нить исполнения):

~ 0s

Исправить символы для системных модулей (и, возможно, для приложения, если таковые имеются):

* исправить символы для приложения
.sympath path_to_app_symbols
* настроить, где отладчик будет загружать и хранить системные символы
.symfix + path_where_system_symbols_will_be_stored
* заставляет отладчик перезагружать символы
.reload

Выполнить команду стека вызовов:

кб
0 голосов
/ 22 сентября 2008

Согласен с Clay, но для Symbols Server вы должны получить последнюю версию symsrv.DLL из "Средства отладки для Windows", которую можно загрузить бесплатно для Microsoft

(Поскольку вы явно спросили, что вам нужно скачать, я полагаю, у вас его еще нет)

...