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
指定控制此方法行為的位旗標。 旗標 可以是下表中值的任何組合。
價值 | 描述 |
---|---|
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, writes, optional] Entries
接收目標記憶體中對應至所查詢來源行的位置。 此陣列中的每個項目類型為 DEBUG_SYMBOL_SOURCE_ENTRY,並包含來源行號以及目標記憶體中的位置。
[in] EntriesCount
指定陣列中 項目數。
[out, optional] EntriesAvail
接收符合目標記憶體中所找到查詢的位置數目。
傳回值
這些方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值。
傳回碼 | 描述 |
---|---|
|
方法成功。 |
|
方法成功。 不過,Entries 陣列不夠大,無法保存符合查詢的所有結果,並捨棄額外的結果。 |
|
查詢不會產生任何結果。 這包括指定檔案無法使用符號信息的情況。 |
言論
調試程式應用程式可以使用這些方法來擷取目標記憶體中的位置,以設定斷點或比對原始程式碼與反組譯指令。 例如,設定旗標DEBUG_GSEL_ALLOW_HIGHER和DEBUG_GSEL_NEAREST_ONLY會針對從指定行開始的第一段程式代碼傳回目標的記憶體位置。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | dbgeng.h (include Dbgeng.h) |