共用方式為


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

指定控制此方法行為的位旗標。 旗標 可以是下表中值的任何組合。

價值 描述
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
 

若要使用預設的旗標集,請將 Flags 設定為 DEBUG_GSEL_DEFAULT。 這已關閉上一個數據表中的所有旗標。

[out, optional] Entries

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

[in] EntriesCount

指定陣列中 項目數

[out, optional] EntriesAvail

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

傳回值

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

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

言論

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

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

要求

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

另請參閱

DEBUG_SYMBOL_SOURCE_ENTRY

GetSourceFileLineOffsets

IDebugSymbols3