Метод IDebugControl2::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
Получает расположение в памяти целевого объекта инструкции, следующей за последней дизассемблированной инструкцией.
[out, optional] LineOffsets
Получает расположения в памяти целевого объекта инструкций, включенных в выходные данные, начиная с инструкции смещения. LineOffsets — это массив, содержащий элементы TotalLines .
Offset — это значение первой записи в этом массиве, если не произошла ошибка дизассемблирования инструкций до этой инструкции. В этом случае первая запись будет содержать DEBUG_ANY_ID, а Offset будет помещена во вторую запись в массиве (index one).
Если выходные данные инструкции охватывают несколько строк, элемент в массиве, соответствующий первой строке инструкции, будет содержать адрес инструкции.
Если lineOffsets имеет значение NULL, эти сведения не возвращаются.
Возвращаемое значение
Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
Комментарии
Язык ассемблера зависит от эффективного типа процессора целевой системы. Сведения о языке ассемблера см. в документации по процессору.
Общие сведения об использовании сборки в приложениях отладчика см. в разделе Отладка в режиме сборки. Дополнительные сведения об использовании сборки с API обработчика отладчика см. в разделе Инструкции по сборке и дизассемблирования.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h (включая Dbgeng.h) |