定位符號檔案或可執行影像。
語法
BOOL IMAGEAPI SymFindFileInPath(
[in] HANDLE hprocess,
[in, optional] PCSTR SearchPath,
[in] PCSTR FileName,
[in, optional] PVOID id,
[in] DWORD two,
[in] DWORD three,
[in] DWORD flags,
[out] PSTR FoundFile,
[in, optional] PFINDFILEINPATHCALLBACK callback,
[in, optional] PVOID context
);
Parameters
[in] hprocess
一個原本傳遞給 SymInitialize 函式的程序的 handle 。
[in, optional] SearchPath
搜尋路徑。 這可能是多條路徑,中間用分號分隔。 它可以包含目錄和符號伺服器。 若此參數為 NULL,函式會使用 SymSetSearchPath 或 SymInitialize 函式的搜尋路徑集合。
[in] FileName
檔案的檔名。 你可以指定一條路徑;但僅使用檔名。
[in, optional] id
三個識別參數中的第一個(見備註)。
[in] two
三個識別參數中的第二個(見備註)。
[in] three
三個識別參數中的第三個(見備註)。
[in] flags
id 參數的 格式。 此參數可以是下列其中一個值。
| 價值 | Meaning |
|---|---|
|
ID 參數是 DWORD。 |
|
ID 參數是指向 DWORD 的指標。 |
|
id 參數是指向 GUID 的指標。 |
[out] FoundFile
一個指向緩衝區的指標,該緩衝區接收到符號檔案的完全限定路徑。 此緩衝區必須至少為MAX_PATH+1個字元。
[in, optional] callback
一個 SymFindFileInPathProc 回調函式。
[in, optional] context
使用者定義的值或 NULL。 這個值會直接傳遞給回調函式。 這個參數通常被應用程式用來傳遞指標到提供回調函式上下文的資料結構。
返回值
如果伺服器找到有效的符號檔,則會回傳 TRUE;否則,它會回傳 FALSE ,而 GetLastError 會回傳一個值,說明為何該符號檔案未被回傳。
備註
識別參數填寫如下:
- 若 DbgHelp 尋找 .pdb 檔案, id 參數會指定原始影像 codeview 除錯目錄中的 PDB 簽章。 參數 二 指定 PDB 的年齡。 參數 三 未被使用,設為零。
- 若 DbgHelp 尋找其他類型的影像,如可執行檔或 .dbg 檔案, id 參數會指定原始影像的 PE 標頭中的 TimeDateStamp。 參數 二 指定 SizeOfImage 欄位,該欄位同樣從 PE 標頭擷取。 參數 三 未被使用,設為零。
在搜尋目錄時,這個函式不會驗證符號識別碼預設是否相符。 為了確保匹配的符號檔案被找到,請呼叫帶有 SYMOPT_EXACT_SYMBOLS 的 SymSetOptions 函式。
所有 DbgHelp 函式,例如這個,都是單執行緒。 因此,來自多個執行緒對此函式的呼叫,很可能導致意外行為或記憶體損毀。 為避免此情況,您必須將多個執行緒的所有同時呼叫同步至此函式。
要呼叫此函式的 Unicode 版本,請定義 DBGHELP_TRANSLATE_TCHAR。
要求
| 需求 | 價值 |
|---|---|
| 目標平臺 | Windows 作業系統 |
| 標頭 | dbghelp.h |
| 範本庫 | DbgHelp.lib |
| DLL | DbgHelp.dll |
| 可再發行 | DbgHelp.dll 5.1 或更新版本 |