Как получить полный стек вызовов в Visual Studio 2005?
-
02-07-2019 - |
Вопрос
Как я могу получить полный стек вызовов для приложения на c ++, разработанного с помощью Visual Studio 2005?Я хотел бы иметь полный стек вызовов, включая код в системных библиотеках.
Должен ли я изменить некоторые настройки в Visual Studio или мне нужно установить дополнительное программное обеспечение?
Решение
Получите отладочную информацию для всех зависимостей проекта.Это указано в разделе "Свойства конфигурации -> C/ C++ -> Общие" свойств проекта.
В меню перейдите в раздел "Инструменты -> Параметры", затем выберите "Отладка -> Символы".
Добавьте новое расположение символа (значок папки), указывающее на бесплатный сервер символов Microsoft “symsrvsymsrv.dllc:\symbols*http://msdl.microsoft.com/downloads/symbols“
Заполните поле "кэшировать символы", указав какое-нибудь локальное место, чтобы вы не выходили в Интернет постоянно.
Другие советы
Согласен с Клэем, но для Symbols Server вы должны получить последнюю версию symsrv.DLL из "Debugging Tools For Windows", бесплатной загрузки Microsoft.
(Поскольку вы явно спросили, что вам нужно загрузить, я предполагаю, что у вас этого еще нет)
Или, необязательно (при условии, что Visual Studio не установлена), возьмите копию Средства отладки Windows, установите и запустите приложение в отладчике (windbg.exe) или присоединить к уже запущенному приложению:
windbg[.exe] -pn program.exe
или
windbg[.exe] -идентификатор процесса p
Прервите работу отладчика в точке, которую вы хотите наблюдать для трассировки стека (Ctrl + Break).Переключитесь на интересующий поток (скорее всего, на основной поток выполнения).:
~0 с
Исправьте символы для системных модулей (и, возможно, для приложения, если таковое имеется).:
* исправьте символы для приложения
.симпатический путь к_апп_символам
* настройте, где отладчик будет загружать и сохранять системные символы.
.symfix+ путь, по которому_система_символов_ будет сохранена
* принудительно загрузить символы в отладчик
.перезарядить
Выполните команду стека вызовов:
кб