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


Метод IDebugControl3::OutputDisassemblyLines (dbgeng.h)

Метод OutputDisassemblyLines дизассемблирует несколько инструкций процессора и отправляет полученные инструкции сборки в выходные обратные вызовы.

Синтаксис

HRESULT OutputDisassemblyLines(
  [in]            ULONG    OutputControl,
  [in]            ULONG    PreviousLines,
  [in]            ULONG    TotalLines,
  [in]            ULONG64  Offset,
  [in]            ULONG    Flags,
  [out, optional] PULONG   OffsetLine,
  [out, optional] PULONG64 StartOffset,
  [out, optional] PULONG64 EndOffset,
  [out, optional] PULONG64 LineOffsets
);

Параметры

[in] OutputControl

Задает элемент управления выходными данными, определяющий, какие обратные вызовы вывода клиента получают выходные данные. Возможные значения см. в разделе DEBUG_OUTCTL_XXX. Дополнительные сведения о выходных данных см. в разделе Входные и выходные данные.

[in] PreviousLines

Указывает количество строк инструкций перед инструкцией в смещение для включения в выходные данные. Как правило, каждая инструкция выводится в одной строке. Однако некоторые инструкции могут занимать несколько строк выходных данных; Это может привести к тому, что число строк, выходных данных перед инструкцией в offset , будет больше , чем PreviousLines.

[in] TotalLines

Указывает общее количество строк инструкций, включаемых в выходные данные. Как правило, каждая инструкция выводится в одной строке. Однако некоторые инструкции могут занимать несколько строк выходных данных; это может привести к тому, что количество выходных строк будет больше , чем TotalLines.

[in] Offset

Указывает расположение в памяти целевого объекта инструкций по дизассемблю. Выходные данные дизассемблата будут запускать строки PreviousLines перед этими инструкциями процессора.

[in] Flags

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

Bit-Flag Эффект при установке
DEBUG_DISASM_EFFECTIVE_ADDRESS Вычислить фактический адрес каждой инструкции на основе текущих сведений о регистре и вывести его.
DEBUG_DISASM_MATCHING_SYMBOLS Если адрес инструкции имеет точное совпадение символов, выведите символ .
DEBUG_DISASM_SOURCE_LINE_NUMBER Включите номер исходной строки каждой инструкции в выходные данные.
DEBUG_DISASM_SOURCE_FILE_NAME Включите имя исходного файла в выходные данные.

[out, optional] OffsetLine

Получает номер строки в выходных данных, содержащих инструкцию в смещение. Если offsetLine имеет значение NULL, эти сведения не возвращаются.

[out, optional] StartOffset

Получает расположение в памяти целевого объекта первой инструкции, включенной в выходные данные. Если startOffset имеет значение NULL, эти сведения не возвращаются.

[out, optional] EndOffset

Получает locaiton в памяти целевого объекта инструкции, следующей за последней дизассемблированной инструкцией.

[out, optional] LineOffsets

Получает расположения в памяти целевого объекта инструкций, включенных в выходные данные, начиная с инструкции в смещение. LineOffsets — это массив, содержащий элементы TotalLines .

Offset — это значение первой записи в этом массиве, если не произошла ошибка дизассемблирования инструкций перед этой инструкцией. В этом случае первая запись будет содержать DEBUG_ANY_ID и Offset будет помещена во вторую запись в массиве (индекс).

Если выходные данные инструкции охватывают несколько строк, элемент в массиве, соответствующий первой строке инструкции, будет содержать адрес инструкции.

Если значение LineOffsets равно NULL, эти сведения не возвращаются.

Возвращаемое значение

Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .

Код возврата Описание
S_OK
Метод выполнен успешно.

Комментарии

Язык ассемблера зависит от эффективного типа процессора целевой системы. Сведения о языке ассемблера см. в документации по процессору.

Общие сведения об использовании сборки в приложениях отладчика см. в разделе Отладка в режиме сборки. Дополнительные сведения об использовании сборки с API обработчика отладчика см. в разделе Инструкции по сборке и дизассембле.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dbgeng.h (включая Dbgeng.h)

См. также раздел

Разобрать

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (unassemble)