共用方式為


IDebugControl::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 指令之前的指令行數。 一般而言,每個指令都是在單一行輸出。 不過,某些指示可能會佔用數行輸出;這可能會導致 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

在輸出中接收行號,其中包含位移 位移的指令。 如果 OffsetLineNULL,則不會傳回此資訊。

[out, optional] StartOffset

接收輸出中包含的第一個指令目標記憶體中的位置。 如果 startOffset NULL,則不會傳回此資訊。

[out, optional] EndOffset

接收目標記憶體中遵循最後一個反組譯指令的指令位置。

[out, optional] LineOffsets

Offset的指令開始,接收輸出中所含指令的目標記憶體中的位置。 LineOffsets 是包含 totalLines 元素 陣列。

Offset 是此陣列中第一個專案的值,除非在此指令之前發生錯誤反組譯指示。 在此情況下,第一個專案將包含DEBUG_ANY_ID,而 Offset 會放在陣列的第二個專案中(索引一)。

如果指令的輸出跨越多行,則陣列中對應至指令第一行的專案將包含指令的位址。

如果 LineOffsetsNULL,則不會傳回此資訊。

傳回值

這個方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值

傳回碼 描述
S_OK
方法成功。

言論

元件語言取決於目標系統的有效處理器類型。 如需元件語言的相關信息,請參閱處理器檔。

如需在除錯程式中使用元件的概觀,請參閱在元件模式中 偵錯。 如需搭配除錯程式引擎 API 使用元件的詳細資訊,請參閱 元件和反組譯指示

要求

要求 價值
目標平臺 桌面
標頭 dbgeng.h (include Dbgeng.h)

另請參閱

反組譯碼

IDebugControl

IDebugControl2

IDebugControl3

OutputDisassembly

u (Unassemble)