设置_NT_SYMBOL_PATH后,为什么我的本地dll会永远加载?

Dou*_* T. 3 c++ debug-symbols symbol-server visual-studio

我已经设置了_NT_SYMBOL_PATH并指出了它

srv*c:\symbols*http://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)

启动调试器时,我注意到Windows相关的dll加载速度很快.然而,我们公司的dll正在花费很长时间才能加载.当我摆脱_NT_SYMBOL_PATH,重新启动visual studio,然后一切都很快加载(尽管我没有MS符号).

这几乎就像上面的符号服务器正在搜索我的内部公司dll的pdbs而不是首先检查它们是否存在于本地.其中一些dll我没有pdbs.有些是我的解决方案的一部分,所以我在调试时构建它们并且总是有pdbs.

Visual Studio如何搜索符号?无论如何,我可以控制visual studio如何搜索符号?我可以明确地说,对于来自给定目录的dll,不要搜索符号吗?还有什么可能会拖累符号的加载速度或我可以采取的任何措施来加速这个过程吗?

Rog*_*mbe 9

Visual Studio 在Visual Studio中配置的任何路径_NT_SYMBOL_PATH 之前搜索.这是调试引擎的"功能".这意味着将搜索Microsoft的符号服务器以查找符号.

在Visual Studio 2010中,他们通过(如果已设置)包含_NT_SYMBOL_PATH在"调试符号"对话框中使其显式化.不幸的是,此条目无法上下移动.

要解决这个问题,请将您的符号服务器置于Microsoft _NT_SYMBOL_PATH 之前:

_NT_SYMBOL_PATH=cache*C:\symbols;\\mysymsvr\Symbols;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols