IDebugSymbols3::GetSourceEntriesByLine 方法 (dbgeng.h)

GetSourceEntriesByLine 方法會查詢符號資訊,並傳回目標記憶體中對應至來源檔案中行的位置。

語法

HRESULT GetSourceEntriesByLine(
  [in]                    ULONG                      Line,
  [in]                    PCSTR                      File,
  [in]                    ULONG                      Flags,
  [out, writes, 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 調試程式引擎只會在已載入符號的模組之間搜尋檔案。 將不會載入其他模組的符號。

如果未設定此選項,調試程式引擎會載入所有模組的符號,直到找到 檔案中指定的檔案為止。

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, writes, optional] Entries

接收目標記憶體中對應至所查詢來源行的位置。 此陣列中的每個項目類型為 DEBUG_SYMBOL_SOURCE_ENTRY ,並包含來源行號以及目標記憶體中的位置。

[in] EntriesCount

指定 Entries 陣列中的項目數目。

[out, optional] EntriesAvail

接收符合目標記憶體中所找到查詢的位置數目。

傳回值

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

傳回碼 描述
S_OK
此方法成功。
S_FALSE
此方法成功。 不過, Entries 陣列不夠大,無法保存符合查詢的所有結果,而且會捨棄額外的結果。
E_NOINTERFACE
查詢不會產生任何結果。 這包括指定檔案無法使用符號信息的情況。

備註

調試程式應用程式可以使用這些方法來擷取目標記憶體中的位置,以設定斷點,或使用反組譯的指令比對原始程式碼。 例如,設定旗標DEBUG_GSEL_ALLOW_HIGHER和DEBUG_GSEL_NEAREST_ONLY會傳回從指定行開始之第一個程式代碼片段的目標記憶體位置。

如需來源檔案的詳細資訊,請參閱 使用原始程序檔

規格需求

需求
目標平台 桌面
標頭 dbgeng.h (包含 Dbgeng.h)

另請參閱

DEBUG_SYMBOL_SOURCE_ENTRY

GetSourceFileLineOffsets

IDebugSymbols3