Debugging Tools for Windows

防火墙和代理服务器

如果使用SymSrv来访问符号,并且计算机在一个使用代理服务器的网络中或符号存储在防火墙之外,数据传输可能需要认证。

当SymSrv接收到认证请求时,调试器根据不同的配置,可以显示认证请求或者自动拒绝该请求。

SymSrv中整合了对代理服务器的支持。它可以使用默认代理服务器SymProxy或自己指定的其他代理服务器。

认证请求

调试器可以配置为允许认证请求。当防火墙或代理服务器要求认证时,会出现一个对话框。在调试器能够下载符号之前,需要先输入一些信息(通常是用户名和密码)。如果输入的信息错误,该对话框会再次出现。如果选择了Cancel按钮,对话框会关闭并且不会获得任何符号信息。

如果调试器配置为拒绝任何认证请求,则不会出现任何对话框,并且当需要认证时,不会有任何符号被传输过来。

如果手动或调试器自动拒绝了认证请求,SymSrv之后不会再尝试联系该符号存储。如果希望重新连接,必须重起调试会话或使用!symsrv close

注意 使用KD或CDB时,认证对话框可能出现在打开的窗口之后。这时需要最小化或者移动一些窗口来找到它。

在WinDbg中,默认允许认证请求。在KD和CDB中,默认拒绝认证请求。

要允许认证请求,可以使用!sym prompts.symopt-0x80000。要拒绝所有请求,使用!sym prompts off.symopt+0x80000。使用!sym.显示当前设置。

对认证许可状态进行任何改变之后,必须使用.reload (Reload Module)命令。

选择代理服务器

要选择Windows的默认代理服务器,打开控制面板中的Internet选项(Internet Options),选择连接(Connections)选项卡,再选择局域网设置(LAN Settings)按钮。这时可以输入代理服务器名字和端口号,或者选择高级(Advanced)来配置多个代理服务器。详细信息,查看Internet Explorer的帮助文件。

要指定symsrv使用的代理服务器,可以将_NT_SYMBOL_PROXY 环境变量设置为该代理服务器的名字或IP,后跟一个冒号和端口号。例如:

set _NT_SYMBOL_PROXY=myproxyserver:80

使用该方法选择代理服务器后,所有使用SymSrv来访问符号服务器的Windows调试器都会使用它。也会被任何使用DbgHelo作为符号处理器的其他调试器使用。这个设置不会影响其他程序。

Build machine: CAPEBUILD