Visual studio从符号服务器搜索中排除模块
符号服务器访问是对比调试器。能够自动下载与当前系统匹配的所有程序(或者最终用户系统,如果我们想调试崩溃转储)的符号是非常方便的。但是有一个小问题:有些模块的符号在公共符号服务器上没有。但是调试器并不知道,因此每次我们启动调试会话时,调试器都会连接符号服务器并尝试下载模块的符号,但没有成功。因此,调试会话的启动时间会显著增加,特别是对于使用大量第三方组件的应用程序,这些组件的符号无法定义在Microsoft symbol server上。
幸运的是,有一个解决方案-我们可以告诉调试器,一些模块应该从符号服务器搜索中排除。
以下是操作方法:
1、升级symsrv.dll.
这个小DLL负责符号服务器的访问。净我们应该将它升级到一个更新的版本,这个版本是随Windows调试工具提供的。在我们下载并安装调试工具之后,symsrv.dll应该从其安装目录复制到<VSInstallDir>\Common7\IDE目录。
2、在symsrv.ini文件中指定排除列表。
此文件应创建在<VSInstallDir>\Common7\IDE目录(其中symsrv.dll位置)。
此文件的[exclusions]部分应包含要从符号服务器搜索中排除的文件列表。支持通配符,我更喜欢用*通配符替换所有文件扩展名,以确保排除所有可能的调试信息文件格式。
这是一个样品symsrv.ini要求调试器排除msxml4.dll和shlwapi.dll从搜索服务器符号:
;start of symsrv.ini [exclusions] msxml4.* shlwapi.* ;end of symsrv.ini