SymSetOptions 函式 (dbghelp.h)

設定選項遮罩。

語法

DWORD IMAGEAPI SymSetOptions(
  [in] DWORD SymOptions
);

參數

[in] SymOptions

符號選項。 零是有效的值,表示所有選項都已關閉。 選項值會使用 OR 運算子結合,以形成有效的選項值。 以下是有效的值。

意義
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
0x00000800
可讓您使用以絕對位址儲存的符號。 大部分的符號會儲存為模組基底的 RVA。 DbgHelp 會將它們轉譯為絕對位址。 有一個符號會儲存為絕對位址。 這些用途非常特殊,通常不會使用。

DbgHelp 5.1 和更早版本: 不支援這個值。

SYMOPT_ALLOW_ZERO_ADDRESS
0x01000000
可讓您使用沒有位址的符號。 根據預設,DbgHelp 會篩選出沒有位址的符號。
SYMOPT_AUTO_PUBLICS
0x00010000
除非在全域符號或目前範圍內找不到符號,否則請勿依位址搜尋符號或列舉符號時搜尋公用符號。 此選項對 SYMOPT_PUBLICS_ONLY沒有任何作用。

DbgHelp 5.1 和更早版本: 不支援這個值。

SYMOPT_CASE_INSENSITIVE
0x00000001
所有符號搜尋不區分大小寫。
SYMOPT_DEBUG
0x80000000
透過 OutputDebugStringSymRegisterCallbackProc64 回呼函式傳遞偵錯輸出。
SYMOPT_DEFERRED_LOADS
0x00000004
除非進行參考,否則不會載入符號,而需要載入符號。 這是使用符號處理常式最快的最有效率方式。
SYMOPT_DISABLE_SYMSRV_AUTODETECT
0x02000000
停用符號伺服器儲存在符號路徑中的自動偵測,即使沒有 「SRV*」 指定,仍維持與先前行為的相容性。

DbgHelp 6.6 和更早版本: 不支援這個值。

SYMOPT_EXACT_SYMBOLS
0x00000400
請勿載入不相符的 .pdb 檔案。 如果所有其他專案都失敗,請勿載入匯出符號。
SYMOPT_FAIL_CRITICAL_ERRORS
0x00000200
當媒體故障,例如磁片磁碟機中沒有媒體時,請勿顯示系統對話方塊。 相反地,失敗會以無訊息方式發生。
SYMOPT_FAVOR_COMPRESSED
0x00800000
如果同時有未壓縮和壓縮的檔案可用,請偏好壓縮檔案。 此選項適用于慢速連線。
SYMOPT_FLAT_DIRECTORY
0x00400000
符號會儲存在預設下游存放區的根目錄中。

DbgHelp 6.1 和更早版本: 不支援這個值。

SYMOPT_IGNORE_CVREC
0x00000080
載入 .pdb 檔案時,忽略影像標頭 CodeView 記錄中的路徑資訊。
SYMOPT_IGNORE_IMAGEDIR
0x00200000
忽略映射目錄。

DbgHelp 6.1 和更早版本: 不支援這個值。

SYMOPT_IGNORE_NT_SYMPATH
0x00001000
如果使用者在沒有有效路徑的情況下呼叫SymSetSearchPath,請勿使用_NT_SYMBOL_PATH指定的路徑。

DbgHelp 5.1: 不支援這個值。

SYMOPT_INCLUDE_32BIT_MODULES
0x00002000
在 64 位 Windows 上進行偵錯時,請包含任何 32 位模組。
SYMOPT_LOAD_ANYTHING
0x00000040
停用檢查,以確保檔案 (.exe、.dbg.或 .pdb) 是正確的檔案。 請改為載入第一個檔案。
SYMOPT_LOAD_LINES
0x00000010
載入行號資訊。
SYMOPT_NO_CPP
0x00000008
包含符號分隔符號 「::」 的所有 C++ 裝飾符號都會由 「__」 取代。 這個選項適用于無法處理剖析實際 C++ 符號名稱的偵錯工具。
SYMOPT_NO_IMAGE_SEARCH
0x00020000
如果無法讀取模組標頭,則載入模組的符號時,請勿搜尋符號路徑的影像。

DbgHelp 5.1: 不支援這個值。

SYMOPT_NO_PROMPTS
0x00080000
防止提示從符號伺服器進行驗證。
SYMOPT_NO_PUBLICS
0x00008000
請勿搜尋 publics 資料表中的符號。 這個選項應該沒有作用,因為 globals 資料表中有公用符號的複本。

DbgHelp 5.1: 不支援這個值。

SYMOPT_NO_UNQUALIFIED_LOADS
0x00000100
當呼叫端檢查多個模組的符號時,防止載入符號。 只檢查已載入符號的模組。
SYMOPT_OVERWRITE
0x00100000
從符號存放區覆寫下層存放區。

DbgHelp 6.1 和更早版本: 不支援這個值。

SYMOPT_PUBLICS_ONLY
0x00004000
請勿使用私用符號。 隨附于舊版 Windows 的 DbgHelp 版本僅支援公用符號;此選項提供與此限制的相容性。

DbgHelp 5.1: 不支援這個值。

SYMOPT_SECURE
0x00040000
DbgHelp 不會載入 SymSrv 以外的任何符號伺服器。 SymSrv 不會使用 _NT_SYMBOL_PATH中指定的下游存放區。 設定此旗標之後,就無法清除它。

DbgHelp 6.0 和 6.1: 您可以清除此旗標。

DbgHelp 5.1: 不支援這個值。

SYMOPT_UNDNAME
0x00000002
所有符號都會以未取消編碼的形式呈現。

此選項不會對全域或本機符號造成任何影響,因為它們會儲存為未取消編碼。 此選項僅適用于公用符號。

傳回值

函式會傳回目前的選項遮罩。

備註

當應用程式正在使用程式庫時,選項值可以變更任意次數。 選項變更會影響符號處理常式的所有未來呼叫。

若要取得目前的選項遮罩,請呼叫 SymGetOptions 函 式。

所有 DbgHelp 函式,例如此函式都是單一執行緒。 因此,從一個以上的執行緒呼叫此函式可能會導致非預期的行為或記憶體損毀。 若要避免這種情況,您必須將所有並行呼叫從一個以上的執行緒同步至此函式。

範例

如需範例,請參閱 初始化符號處理常式

需求

   
目標平台 Windows
標頭 dbghelp.h
程式庫 Dbghelp.lib
Dll Dbghelp.dll
可轉散發套件 DbgHelp.dll 5.1 或更新版本

另請參閱

DbgHelp 函式

SymGetOptions