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
接收符合目標記憶體中所找到查詢的位置數目。
傳回值
這些方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值 。
傳回碼 | 描述 |
---|---|
|
此方法成功。 |
|
此方法成功。 不過, Entries 陣列不夠大,無法保存符合查詢的所有結果,而且會捨棄額外的結果。 |
|
查詢不會產生任何結果。 這包括指定檔案無法使用符號信息的情況。 |
備註
調試程式應用程式可以使用這些方法來擷取目標記憶體中的位置,以設定斷點,或使用反組譯的指令比對原始程式碼。 例如,設定旗標DEBUG_GSEL_ALLOW_HIGHER和DEBUG_GSEL_NEAREST_ONLY會傳回從指定行開始之第一個程式代碼片段的目標記憶體位置。
如需來源檔案的詳細資訊,請參閱 使用原始程序檔。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | dbgeng.h (包含 Dbgeng.h) |