проблема с символом отладки - PullRequest
0 голосов
/ 20 марта 2009

Меня интересует, какой файл символов используется при анализе файла дампа с использованием Windbg или Visual Studio. Предположим, что мое приложение использует служебную библиотеку, а служебная библиотека имеет связанный файл закрытых символов. Когда в моем приложении происходит аварийный дамп, мне нужен символ библиотеки утилит для анализа всего стека вызовов. Но иногда среды build / runtime / debug устанавливаются с разными версиями служебной библиотеки, которые (наверняка) являются разными версиями символов служебной библиотеки.

Предположим, у нас есть версия (например, версия A) служебной библиотеки (и связанный символ) для сборки (ссылка) моего приложения, использующая другую версию (например, версию B) служебной библиотеки (и связанный символ) во время выполнения, когда есть аварийное завершение работы и использование другой другой версии (например, версии C) служебной библиотеки (и соответствующего символа) в Windbg, когда я анализирую аварийный дамп.

У меня вопрос: когда во время выполнения генерируется сбой, для создания дампа сбоя используется символ версии B (для заполнения дампа информацией о символах)? Но при использовании другой версии символа C в среде отладки Windbg возникнет проблема несовпадения символов? А какая версия библиотеки используется для сборки не имеет значения? Все ли мои представления верны?

спасибо заранее, George

Ответы [ 2 ]

3 голосов
/ 20 марта 2009

Звучит так, как будто вы хотите использовать Symbol Server , чтобы WinDBG или VS могли опускать символы, соответствующие сборке библиотеки, которую вы отлаживаете. Если это сторонний компонент, и у вас есть личные символы, вы можете либо разместить их на своем собственном сервере, либо посмотреть, есть ли у третьей стороны публичный сервер символов.

Windbg не будет загружать символы, если они не соответствуют отлаживаемой dll, вы можете использовать! Sym noisy, чтобы узнать больше о процессе загрузки символов. Если вы решите не использовать сервер символов, вы можете управлять всеми pdb вручную и загружать их вручную в windbg (используйте lm v, чтобы получить подробную информацию о модуле, загруженном в ваш процесс)

1 голос
/ 20 марта 2009

Обычно символы должны находиться в том же файле, что и код (поэтому отладочные версии обычно больше). Я не могу вспомнить случай, когда отладчик извлекал символы из одного двоичного файла при запуске другого - но это из общих знаний, а не из какой-либо специализированной информации о вашей среде.

...