четверг, 30 октября 2008 г.

Не забывайте подключать символы

Качество развертки стека вызовов со стороны Dr. Watson и WinDbg можно фантастически улучшить, не забывая указывать им, где взять отладочные символы.

Возможно, в будущем я упомяну, как происходит процесс "раскрутки" стека, но пока что это неважно - просто нужно помнить мантру "хочешь правильный понятный стек - дай отладочную информацию"...
Нам нужно получить три пакета с символами:

  • Символы от операционной системы (берутся либо с диска с ОС, либо скачиваются с оф. сайта)

  • Символы от C++ Runtime (можно просто скопировать их из своего каталога Windows на отлаживаемую машину, список файлов можно вычислить, посмотрев на загруженные модули из состава C++ Runtime в процесс, например, командой lm WinDbg, после чего найти все соответствующие .pdb-файлы)

  • Символы от Вашего многострадального приложения (я надеюсь, что Вы генерируете и храните их для КАЖДОЙ сборки, попадающей на стенд или клиенту?)


Пути к этим пакетам отладчик получает из переменной окружения _NT_SYMBOL_PATH, которую нужно создать и запомнить, используя диалог System Properties|Advanced|Environment variables.
Каталоги в строке разделяются с помощью ";".

На самом деле, в этой строке могут быть не только каталоги, но об этом в следующий раз...

Комментариев нет: