Отладка кода сборки в WinDbg (классическая версия)

В WinDbg можно просмотреть код сборки, введя команды или используя окно Дизассембли.

Командное окно отладчика

Код сборки можно просмотреть, введя одну из команд u, ub, uu (Unassemble) в окне команды отладчика.

Распакуемное окно

Чтобы открыть или переключиться в окно "Дизассембли", выберите dissasembly в меню "Вид ". (Можно также нажать клавиши ALT+7 или выбрать Кнопка дизассембли на панели инструментов. ALT+SHIFT+7 закроет окно дизассембли.)

На следующем снимке экрана показан пример окна Дизассембли.

Снимок экрана: окно дизассембли в WinDbg.

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

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

  • Чтобы разобрать другой раздел памяти, в поле "Смещение" введите адрес памяти, который требуется дизассемблировать. (После ввода адреса можно нажать клавишу ВВОД, но вам не нужно.) В окне дизассемблирования отображается код перед завершением адреса; этот код можно игнорировать.

  • Чтобы просмотреть другие разделы памяти, нажмите кнопки "Назад" или "Далее" или нажмите клавиши PAGE UP или PAGE DOWN. Эти команды отображают разобранный код из предыдущих или следующих разделов памяти соответственно. Нажав клавишу СТРЕЛКА ВПРАВО, СТРЕЛКА ВЛЕВО, СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ, вы можете перемещаться в окне. Если вы используете эти ключи для перехода с страницы, появится новая страница.

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

  • Перейдите к текущему адресу , откроет окно "Источник" с исходным файлом, соответствующим выбранной строке в окне дизассембли и выделите эту строку.

  • Дизассемблировать до текущей инструкции приводит к тому, что текущая строка будет помещена в середину окна Дизассембли. Эта команда является параметром по умолчанию. Если эта команда очищается, текущая строка появится в верхней части окна Дизассембли, что экономит время, так как дизассемблирование обратного направления может занять много времени.

  • Выделение инструкций из текущей исходной строки приводит к выделению всех инструкций, соответствующих текущей исходной строке. Часто одна исходная строка будет соответствовать нескольким инструкциям сборки. Если код оптимизирован, эти инструкции сборки могут быть не последовательными. Эта команда позволяет найти все инструкции, собранные из текущей исходной строки.

  • Отображение исходной строки для каждой инструкции отображает номер исходной строки, соответствующий каждой инструкции сборки.

  • Отображение исходного файла для каждой инструкции отображает имя исходного файла, соответствующее каждой инструкции сборки.

См. также

Дополнительные сведения об отладке сборки и связанных командах и полном объяснении отображения сборки см. в разделе "Отладка в режиме сборки".