防火墙和代理服务器
如果使用 SymSrv 访问符号,并且计算机位于使用代理服务器的网络上,或者符号存储位于防火墙之外,则可能需要进行身份验证才能进行数据传输。
SymSrv 收到身份验证请求时,调试器可以显示身份验证请求或自动拒绝请求,具体取决于其配置方式。
SymSrv 具有对代理服务器的集成支持。 它可以使用默认代理服务器 SymProxy,也可以使用你选择的另一个代理服务器。
身份验证请求
可以将调试器配置为允许身份验证请求。 当防火墙或代理服务器请求授权时,将显示一个对话框。 必须输入某种信息 (通常为用户名和密码) ,调试器才能下载符号。 如果输入的信息不正确,对话框会重新显示。 如果选择“ 取消 ”按钮,对话框将消失,并且不会传输符号信息。
如果将调试器配置为拒绝所有身份验证请求,则不会显示任何对话框,并且如果需要身份验证,则不会传输符号。
如果拒绝身份验证请求,或者调试器自动拒绝身份验证请求,SymSrv 将不会进一步尝试联系符号存储。 如果要续订联系人,则必须重新启动调试会话或使用 !symsrv close。
注意 如果使用 KD 或 CDB,则身份验证对话框可能会出现在打开的窗口后面。 如果发生这种情况,可能需要移动或最小化某些窗口才能找到此对话框。
在 WinDbg 中,默认情况下允许身份验证请求。 在 KD 和 CDB 中,默认情况下会自动拒绝身份验证请求。
若要允许身份验证请求,请使用 !sym 提示 符或 .symopt-0x80000。 若要拒绝所有请求,请使用 !sym 提示关闭 或 .symopt+0x80000。 若要显示当前设置,请使用 !sym。
对身份验证权限状态进行任何更改后,必须使用 .reload (重新加载模块) 。
选择代理服务器
若要为 Windows 选择默认代理服务器,请在 控制面板 中打开“Internet 选项”,选择“连接”选项卡,然后选择“LAN 设置”按钮。 然后,可以输入代理服务器名称和端口号,或选择“ 高级 ”来配置多个代理服务器。 有关更多详细信息,请参阅 Internet Explorer 的帮助文件。
若要选择要使用的特定代理服务器,请将_NT_SYMBOL_PROXY环境变量设置为等于代理服务器的名称或 IP,后跟冒号和端口号。 例如:
set _NT_SYMBOL_PROXY=myproxyserver:80
以这种方式选择代理服务器时,任何使用 SymSrv 的 Windows 调试器都将使用该代理服务器来访问符号服务器。 它还将由使用 DbgHelp 作为符号处理程序的任何其他调试工具使用。 此设置不会影响其他任何程序。