Поделиться через


Отладка процессов User-Mode без символов

Перед запуском отладчика важно иметь символы на компьютере, на котором выполняется ошибка в пользовательском режиме. Однако иногда отладчик запускается без символов. Если проблему легко воспроизвести, вы можете просто скопировать символы и выполнить повторно. Однако если проблема может не возникнуть снова, некоторые сведения по-прежнему могут быть почерпнуты из сбоя:

  1. Чтобы понять, что означают адреса, потребуется компьютер, соответствующий адресу с ошибкой. Он должен иметь ту же платформу (x86 или x64) и загружаться с одной и той же версией Windows.

  2. После настройки компьютера скопируйте на новый компьютер символы пользовательского режима и двоичные файлы, которые требуется отладить.

  3. Запустите CDB или WinDbg на компьютере без символов.

  4. Если вы не знаете, какое приложение завершилось сбоем на компьютере без символов, выполните запрос | (Состояние процесса) Команды. Если это не дает вам имя, разбейте KD на компьютере без символов и выполните !process 0 0, найдите идентификатор процесса, указанный командой CDB.

  5. Если у вас настроены два отладчика ( один с символами, которые не попали в ошибку, и один, который попал в ошибку, но без символов), выполните команду k (Display Stack Backtrace) на компьютере без символов.

  6. На компьютере с символами выполните команду u (Unassemble) для каждого адреса, указанного в стеке без символов. Это даст трассировку стека для ошибки на компьютере без символов.

  7. Просмотрев трассировку стека, можно увидеть имена модулей и функций, участвующих в вызове .