IDebugSymbols3::GetSourceEntriesByLineWide 方法 (dbgeng.h)
GetSourceEntriesByLineWide 方法會查詢符號資訊,並傳回目標記憶體中對應至來源檔案中行的位置。
語法
HRESULT GetSourceEntriesByLineWide(
[in] ULONG Line,
[in] PCWSTR File,
[in] ULONG Flags,
[out, optional] PDEBUG_SYMBOL_SOURCE_ENTRY Entries,
[in] ULONG EntriesCount,
[out, optional] PULONG EntriesAvail
);
參數
[in] Line
指定要查詢的來源檔案中的行。 第一行的數位是 1。
[in] File
指定來源檔案。 系統會查詢目標中每個模組的符號,以取得此檔案。
[in] Flags
指定控制此方法行為的位旗標。 旗標 可以是下表中值的任何組合。
值 | Description |
---|---|
DEBUG_GSEL_NO_SYMBOL_LOADS |
調試程式引擎只會在已載入符號的模組之間搜尋檔案。 不會載入其他模組的符號。
如果未設定此選項,調試程式引擎會載入所有模組的符號,直到它 找到 File 中指定的檔案為止。 |
DEBUG_GSEL_ALLOW_LOWER | 在結果中包含 [檔案 ] 中 [ 行 ] 之前的所有行。 |
DEBUG_GSEL_ALLOW_HIGHER | 在結果中包含 [檔案 ] 中的 [ 行 后] 中的所有行。 |
DEBUG_GSEL_NEAREST_ONLY | 只傳回最多一個結果。 如果已設定DEBUG_GSEL_ALLOW_LOWER或DEBUG_GSEL_ALLOW_HIGHER,則傳回的結果將會是接近 Line 的行,但如果該行沒有符號資訊,則不能是 Line 。 |
若要使用預設的旗標集,請將 Flags 設定為 DEBUG_GSEL_DEFAULT。 這已關閉上一個數據表中的所有旗標。
[out, optional] Entries
接收目標記憶體中對應至所查詢來源行的位置。 此陣列中的每個專案都是類型 DEBUG_SYMBOL_SOURCE_ENTRY ,並包含來源行號以及目標記憶體中的位置。
[in] EntriesCount
指定 Entries 陣列中的項目數目。
[out, optional] EntriesAvail
接收符合目標記憶體中所找到查詢的位置數目。
傳回值
這些方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值 。
傳回碼 | 描述 |
---|---|
|
此方法成功。 |
|
此方法成功。 不過, Entries 陣列不夠大,無法保存符合查詢的所有結果,並捨棄額外的結果。 |
|
查詢不會產生任何結果。 這包括指定檔案無法使用符號信息的情況。 |
備註
調試程式應用程式可以使用這些方法來擷取目標記憶體中的位置,以設定斷點或比對原始程式碼與反組譯指令。 例如,設定旗標DEBUG_GSEL_ALLOW_HIGHER和DEBUG_GSEL_NEAREST_ONLY將會傳回從指定行開始之第一個程式代碼片段的目標記憶體位置。
如需原始程式檔的詳細資訊,請參閱 使用原始程序檔。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | dbgeng.h (包含 Dbgeng.h) |