符號選項
有數個選項可用來控制符號的載入和使用方式。 這些選項可以透過各種方式設定。
下表列出這些符號選項:
旗標 | 選項名稱 | 偵錯工具中的預設 | DBH 中的預設值 |
---|---|---|---|
0x1 |
開啟 |
開啟 |
|
0x2 |
開啟 |
開啟 |
|
0x4 |
開啟 |
關閉 |
|
0x8 |
關閉 |
關閉 |
|
0x10 |
在 KD 和 CDB 中關閉 在 WinDbg 中開啟 |
開啟 |
|
0x20 |
開啟 |
關閉 |
|
0x40 |
關閉 |
關閉 |
|
0x80 |
關閉 |
關閉 |
|
0x100 |
關閉 |
關閉 |
|
0x200 |
開啟 |
關閉 |
|
0x400 |
關閉 |
另一 |
|
0x800 |
關閉 |
另一 |
|
0x1000 |
關閉 |
關閉 |
|
0x2000 |
SYMOPT_INCLUDE_32BIT_MODULES |
關閉 |
關閉 |
0x4000 |
關閉 |
關閉 |
|
0x8000 |
關閉 |
關閉 |
|
0x10000 |
開啟 |
開啟 |
|
0x20000 |
開啟 |
關閉 |
|
0x40000 |
關閉 |
關閉 |
|
0x80000 |
在 KD 和 CDB 中開啟 在 WinDbg 中關閉 |
關閉 |
|
0x80000000 |
關閉 |
關閉 |
變更符號選項設定
.symopt ([設定符號選項]) 命令可用來變更或顯示符號選項設定。 此外,有數個命令列參數和命令可用來變更這些設定;這些會列在個別SYMOPT_XXX 區段中。
您也可以使用 -sflags命令列選項一次控制所有設定。 此選項後面可以加上十進位數,或前面加上 0x的十六進位數位。 建議您使用十六進位,因為符號旗標會以這種方式正確對齊。 請小心使用此方法,因為它會設定整個位欄位,而且會覆寫所有符號處理常式預設值。 例如, -sflags 0x401 不僅會開啟SYMOPT_EXACT_SYMBOLS和SYMOPT_CASE_INSENSITIVE,也會關閉預設開啟所有其他選項!
當啟動這些程式時,總旗標位的預設值是在 WinDbg 中0x30237、CDB 和 KD 中的0xB0227,以及在 DBH 工具中0x10C13,而不需要任何符號相關的命令列選項即可啟動這些程式。
SYMOPT_CASE_INSENSITIVE
此符號選項會導致所有搜尋符號名稱不區分大小寫。
此選項預設會在所有偵錯工具中開啟。 偵錯工具執行之後,可以分別使用 .symopt+0x1 或 .symopt-0x1 來開啟或關閉。
預設會在 DBH 中開啟此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +1 或 symopt -1 來開啟或關閉。
SYMOPT_UNDNAME
此符號選項會在顯示公用符號名稱時取消取消編碼,並導致搜尋符號名稱忽略符號裝飾。 不論此選項是否為使用中,私用符號名稱都不會裝飾。 如需符號名稱裝飾的資訊,請參閱 公用和私人符號。
此選項預設會在所有偵錯工具中開啟。 偵錯工具執行之後,可以分別使用 .symopt+0x2 或 .symopt-0x2 來開啟或關閉。
預設會在 DBH 中開啟此選項。 如果使用 -d 命令列選項,則會關閉它。 DBH 執行之後,可以分別使用 symopt +2 或 symopt -2 來開啟或關閉。
SYMOPT_DEFERRED_LOADS
這個符號選項稱為 延後符號載入 或 延遲符號載入。 使用中時,系統不會在載入目的模組時實際載入符號。 相反地,偵錯工具會視需要載入符號。 如需詳細資訊 ,請參閱延後符號載入 。
此選項預設會在所有偵錯工具中開啟。 在 CDB 和 KD 中,-s 命令列選項將會關閉此選項。 您也可以在 CDB 中使用tools.ini檔案中的LazyLoad變數來關閉它。 偵錯工具執行之後,您可以分別使用 .symopt+0x4 或 .symopt-0x4 來開啟或關閉此選項。
預設會在 DBH 中關閉此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +4 或 symopt -4 來開啟或關閉。
SYMOPT_NO_CPP
此符號選項會關閉 C++ 翻譯。 設定此符號選項時,會在所有符號中以__取代:: 。
此選項預設會在所有偵錯工具中關閉。 您可以使用 -snc 命令列選項來啟動它。 偵錯工具執行之後,可以分別使用 .symopt+0x8 或 .symopt-0x8 來開啟或關閉。
預設會在 DBH 中關閉此選項。 DBH 執行之後,就可以分別使用 symopt +8 或 symopt -8 來開啟或關閉它。
SYMOPT_LOAD_LINES
這個符號選項允許從原始程式檔讀取行號資訊。 此選項必須開啟,才能讓來源偵錯正常運作。
在 KD 和 CDB 中,此選項預設為關閉;在 WinDbg 中,此選項預設為開啟。 在 CDB 和 KD 中,-lines 命令列選項將會開啟此選項。 偵錯工具執行之後,可以分別使用 .symopt+0x10 或 .symopt-0x10來開啟或關閉。 您也可以使用 .lines (切換來源行支援) 命令來 開啟和關閉。
預設會在 DBH 中開啟此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +10 或 symopt -10 來開啟或關閉。
SYMOPT_OMAP_FIND_NEAREST
當程式碼已優化且預期位置沒有符號時,此選項會改為使用最接近的符號。
此選項預設會在所有偵錯工具中開啟。 偵錯工具執行之後,可以分別使用 .symopt+0x20 或 .symopt-0x20 來開啟或關閉。
預設會在 DBH 中開啟此選項。 DBH 執行之後,可以分別使用 symopt +20 或 symopt -20 來開啟或關閉。
SYMOPT_LOAD_ANYTHING
當符號處理常式嘗試比對符號時,這個符號選項會減少符號處理常式的挑選性。
此選項預設會在所有偵錯工具中關閉。 偵錯工具執行之後,可以分別使用 .symopt+0x40 或 .symopt-0x40 來開啟或關閉。
預設會在 DBH 中關閉此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +40 或 symopt -40 來開啟或關閉它。
SYMOPT_IGNORE_CVREC
這個符號選項會使符號處理常式在搜尋符號時忽略載入影像標頭中的 CV 記錄。
此選項預設會在所有偵錯工具中關閉。 您可以使用 -sicv 命令列選項來啟動它。 偵錯工具執行之後,可以分別使用 .symopt+0x80 或 .symopt-0x80 來開啟或關閉。
預設會在 DBH 中關閉此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +80 或 symopt -80 來開啟或關閉它。
SYMOPT_NO_UNQUALIFIED_LOADS
這個符號選項會停用符號處理常式的自動載入模組。 設定此選項且偵錯工具嘗試比對符號時,它只會搜尋已載入的模組。
此選項可用來作為防禦符號名稱的誤譯。 一般而言,輸入錯誤的符號會導致偵錯工具在搜尋所有卸載的符號檔時暫停。 當此選項為使用中時,載入的模組中找不到輸入錯誤的符號,搜尋將會終止。
此選項預設會在所有偵錯工具中關閉。 您可以使用 -snul 命令列選項來啟動它。 偵錯工具執行之後,可以分別使用 .symopt+0x100 或 .symopt-0x100 來開啟或關閉。
預設會在 DBH 中關閉此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +100 或 symopt -100 來開啟或關閉。
SYMOPT_FAIL_CRITICAL_ERRORS
這個符號選項會導致隱藏檔案存取錯誤對話方塊。
如果此選項關閉,檔案存取錯誤,例如「磁片磁碟機尚未就緒」,在符號載入期間遇到,將會導致對話方塊出現。 如果此選項開啟,則會隱藏這些方塊,且所有存取錯誤都會收到「失敗」回應。
此選項預設會在所有偵錯工具中開啟。 您可以使用 -sdce 命令列選項加以停用。 偵錯工具執行之後,可以分別使用 .symopt+0x200 或 .symopt-0x200 來開啟或關閉。
預設會在 DBH 中關閉此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +200 或 symopt -200 來開啟或關閉它。
SYMOPT_EXACT_SYMBOLS
這個符號選項會使偵錯工具對所有符號檔執行嚴格的評估。
當此選項開啟時,即使符號檔與符號處理常式的期望之間稍有不一致,也會忽略符號。
此選項預設會在所有偵錯工具中關閉。 您可以使用 -ses 命令列選項來啟動它。 偵錯工具執行之後,可以分別使用 .symopt+0x400 或 .symopt-0x400來開啟或關閉。
-failinc 命令列選項也會開啟SYMOPT_EXACT_SYMBOLS。 此外,如果您要偵錯使用者模式迷你傾印或核心模式迷你傾印,-failinc 會防止偵錯工具載入無法對應映射的任何模組。
預設會在 DBH 中開啟此選項。 一旦 DBH 正在執行,就可以分別使用 symopt +400 或 symopt -400 來開啟或關閉它。
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
此符號選項可讓 DbgHelp 讀取儲存在記憶體中絕對位址的符號。 在大部分情況下,不需要此選項。
此選項預設會在所有偵錯工具中關閉。 偵錯工具執行之後,可以分別使用 .symopt+0x800 或 .symopt-0x800 來開啟或關閉。
此選項預設為在 DBH 中開啟。 執行 DBH 之後,可以分別使用 symopt +800 或 symopt -800 來開啟或關閉它。
SYMOPT_IGNORE_NT_SYMPATH
這個符號選項會使偵錯工具忽略符號路徑和可執行影像路徑的環境變數設定。
此選項預設會在所有偵錯工具中關閉。 您可以使用 -sins 命令列選項來啟用它。 不過,一旦偵錯工具正在執行,就無法由 .symopt 控制,因為環境變數只會在啟動時讀取。
此選項預設會在 DBH 中關閉,而且在所有情況下都會由 DBH 忽略。
SYMOPT_PUBLICS_ONLY
此符號選項會導致 DbgHelp 忽略私人符號資料,並只搜尋公用符號資料表中的符號資訊。 這會在新增這些類型的支援之前模擬 DbgHelp 的行為。 請參閱 公用和私人符號。
此選項預設會在所有偵錯工具中關閉。 偵錯工具執行之後,可以分別使用 .symopt+0x4000 或 .symopt-0x4000 來開啟或關閉偵錯工具。
此選項預設會在 DBH 中關閉。 如果使用 -d 命令列選項,則會開啟它。 執行 DBH 之後,可以分別使用 symopt +4000 或 symopt -4000 來開啟或關閉它。
SYMOPT_NO_PUBLICS
此符號選項可防止 DbgHelp 搜尋公用符號資料表。 這可讓符號列舉和符號搜尋更快。 如果您只考慮搜尋速度,SYMOPT_AUTO_PUBLICS選項通常最好是這個選項。 如需公用符號資料表的資訊,請參閱 公用和私人符號。
此選項預設會在所有偵錯工具中關閉。 偵錯工具執行之後,可以分別使用 .symopt+0x8000 或 .symopt-0x8000 來開啟或關閉。
此選項預設會在 DBH 中關閉。 執行 DBH 之後,可以分別使用 symopt +8000 或 symopt -8000 來開啟或關閉它。
SYMOPT_AUTO_PUBLICS
這個符號選項會讓 DbgHelp 只在 .pdb 檔案中搜尋公用符號資料表做為最後一個方法。 如果在搜尋私人符號資料時發現任何相符專案,則不會搜尋公用符號。 這可改善符號搜尋速度。
此選項預設會在所有偵錯工具中開啟。 您可以使用 -sup 命令列選項來停用它。 偵錯工具執行之後,可以分別使用 .symopt+0x10000 或 .symopt-0x10000 來開啟或關閉。
此選項預設為在 DBH 中開啟。 如果使用 -d 命令列選項,則會關閉它。 執行 DBH 之後,可以分別使用 symopt +10000 或 symopt -10000 來開啟或關閉它。
SYMOPT_NO_IMAGE_SEARCH
此符號選項可防止 DbgHelp 在載入符號時搜尋磁片中的影像複本。
此選項預設會在所有偵錯工具中開啟。 偵錯工具執行之後,可以分別使用 .symopt+0x20000 或 .symopt-0x20000 來開啟或關閉。
此選項預設會在 DBH 中關閉。 執行 DBH 之後,可以分別使用 symopt +20000 或 symopt -20000 來開啟或關閉它。
SYMOPT_SECURE
(核心模式) 這個符號選項會指出 安全模式 是否作用中。
所有偵錯工具中預設都會關閉安全模式。 您可以使用 -secure 命令列選項來啟用它。 如果偵錯工具正在執行、處於睡眠模式,且尚未建立任何偵錯伺服器,則可以使用 .symopt+0x40000 或 .secure (啟用安全模式) 開啟安全模式 。
此選項預設會在 DBH 中關閉。 執行 DBH 之後,可以分別使用 symopt +40000 或 symopt -40000 來開啟或關閉它。
一旦啟用安全模式,就無法關閉安全模式。
SYMOPT_NO_PROMPTS
這個符號選項會隱藏 Proxy 伺服器的驗證對話方塊。 這可能會導致 SymSrv 無法存取網際網路上的符號存放區。
如需詳細資訊,請參閱 防火牆和 Proxy 伺服器。
在 KD 和 CDB 中,此選項預設為開啟;在 WinDbg 中,此選項預設為關閉。 偵錯工具執行之後,可以使用 .symopt+0x80000 或 .symopt-0x80000 分別開啟或關閉偵錯工具,後面接著 . reload (重載模組) 命令。 您也可以使用 !sym 提示關閉 和 !sym prompts extension 命令來開啟和關閉,後面接著 .reload (重載模組) 命令。
此選項預設會在 DBH 中關閉。 執行 DBH 之後,可以分別使用 symopt +80000 或 symopt -80000 來開啟或關閉它。
-SYMOPT_DEBUG
這個符號選項會開啟 雜訊符號載入。 這會指示偵錯工具顯示其搜尋符號的相關資訊。
載入時,將會顯示每個符號檔的名稱。 如果偵錯工具無法載入符號檔,它會顯示錯誤訊息。 .pdb 檔案的錯誤訊息會顯示在文字中。 .dbg 檔案的錯誤訊息格式為錯誤碼;這些程式碼會在 winerror.h 檔案中說明。
如果影像檔只會載入以復原符號標頭資訊,也會顯示這一點。
此選項預設會在所有偵錯工具中關閉。 您可以使用 -n 命令列選項來啟用它。 偵錯工具執行之後,可以分別使用 .symopt+0x80000000 或 .symopt-0x80000000來開啟或關閉。 您也可以使用 !sym 雜訊 和 !sym quiet extension 命令來開啟和關閉它。
注意 此選項不應與雜訊 來源 載入混淆-- 由 .srcnoisy (Noisy 來源載入) 命令所控制。
此選項預設會在 DBH 中關閉。 您可以使用 -n 命令列選項來啟用它。 執行 DBH 之後,可以分別使用 symopt +800000000 或 symopt -800000000 來開啟或關閉它。 您也可以使用詳細資訊開啟和關閉命令來開啟和關閉。