如果您使用 SymSrv 來存取符號,而且您的電腦位於使用 Proxy 伺服器的網路上,或符號存放區位於防火牆之外,則可能需要驗證才能進行資料傳輸。
當 SymSrv 收到驗證要求時,偵錯工具可以顯示驗證要求或自動拒絕要求,視其設定方式而定。
SymSrv 已整合對 Proxy 伺服器的支援。 它可以使用預設的 Proxy 伺服器 SymProxy,也可以使用您選擇的另一個 Proxy 伺服器。
驗證要求
偵錯工具可以設定為允許驗證要求。 當防火牆或代理伺服器請求授權時,將出現一個對話框。 您必須先輸入某種資訊 (通常是使用者名稱和密碼) ,偵錯工具才能下載符號。 如果您輸入不正確的資訊,對話框將會重新顯示。 如果您選取 [取消] 按鈕,對話方塊將會消失,且不會傳輸任何符號資訊。
如果偵錯工具設定為拒絕所有驗證要求,則不會出現任何對話方塊,而且如果需要驗證,則不會傳輸任何符號。
如果您拒絕驗證要求,或偵錯工具自動拒絕驗證要求,SymSrv 將不會進一步嘗試連絡符號存放區。 如果您希望重新建立連線,必須重新啟動調試會話或使用 !symsrv close。
注意 如果您使用 KD 或 CDB,驗證對話方塊可能會出現在開啟的視窗後面。 如果發生這種情況,您可能必須移動或最小化某些視窗才能找到此對話框。
在 WinDbg 中,預設允許驗證要求。 在 KD 和 CDB 中,預設會自動拒絕驗證要求。
若要允許驗證要求,請使用 !sym prompts 或 .symopt-0x80000。 若要拒絕所有要求,請使用 !sym 提示符關閉 或 .symopt+0x80000。 若要顯示目前的設定,請使用 !sym。
在對驗證權限狀態進行任何變更之後,您必須使用 .reload (重新載入模組)。
選擇代理伺服器
若要選取 Windows 的預設 Proxy 伺服器,請在 [控制台] 中開啟 [因特網選項 ],選取 [連線] 索引標籤,然後選取 [LAN 設定 ] 按鈕。 然後,您可以輸入 Proxy 伺服器名稱和連接埠號碼,或選取 進 階 以設定多個 Proxy 伺服器。 如需詳細資訊,請參閱 Internet Explorer 的說明檔案。
若要選取 symsrv 要使用的特定 Proxy 伺服器,請將 _NT_SYMBOL_PROXY 環境變數設定為等於 Proxy 伺服器的名稱或 IP,後面接著冒號,然後是埠號。 例如:
set _NT_SYMBOL_PROXY=myproxyserver:80
以這種方式選擇 Proxy 伺服器時,任何使用 SymSrv 存取符號伺服器的 Windows 偵錯工具都會使用它。 任何其他使用 DbgHelp 做為符號處理常式的偵錯工具也會使用它。 其他程式不會受到此設定的影響。