(dbgeng.h) 的 IDebugControl::OutputDisassemblyLines 方法
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
從 Offset 的指令開始,接收輸出中所含指令之目標記憶體中的位置。 LineOffsets 是包含 TotalLines 元素的 陣列。
Offset 是這個陣列中第一個專案的值,除非此指令之前有反組譯指令的錯誤。 在此情況下,第一個專案將包含DEBUG_ANY_ID, 而 Offset 將會放在陣列的第二個專案中, (索引一) 。
如果指令的輸出跨越多行,則對應至指令第一行之陣列中的元素將包含指令的位址。
如果 LineOffsets 為 NULL,則不會傳回這項資訊。
傳回值
這個方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值 。
傳回碼 | 描述 |
---|---|
|
此方法成功。 |
備註
元件語言取決於目標系統的有效處理器類型。 如需元件語言的相關信息,請參閱處理器檔。
如需在調試程式應用程式中使用元件的概觀,請參閱 在元件模式中偵錯。 如需搭配調試程式引擎 API 使用元件的詳細資訊,請參閱 組合和反組譯指示。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | dbgeng.h (包含 Dbgeng.h) |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應