我已经设置了 _NT_SYMBOL_PATH 并将其指向
srv*c:\symbols*http://msdl.microsoft.com/download/symbols
启动调试器时,我注意到与 Windows 相关的 dll 加载速度很快。但是,我们公司的 dll 加载时间非常长。当我摆脱 _NT_SYMBOL_PATH 时,重新启动 visual studio,然后所有内容都加载得非常快(尽管我没有 MS 符号)。
这几乎就像是在上面的符号服务器中搜索我的内部公司 dll 的 pdb,而不是首先检查它们是否存在于本地。其中一些 dll 我没有 pdb。有些是我的解决方案的一部分,所以我在调试时构建它们并且总是有 pdb。
Visual Studio 如何搜索符号?无论如何我可以控制 visual studio 如何搜索符号?我可以明确地说,对于给定目录中的 dll 不搜索符号吗?是否有任何其他因素可能会降低符号的加载速度或我可以采取哪些措施来加快该过程?
最佳答案
Visual Studio 搜索 _NT_SYMBOL_PATH
之前在 Visual Studio 中配置的任何路径。这是调试引擎的一个“特性”。这意味着将搜索 Microsoft 的符号服务器以查找您的符号。
在 Visual Studio 2010 中,他们通过在“调试符号”对话框中包含 _NT_SYMBOL_PATH
(如果已设置)使其显式化。不幸的是,这个条目cannot be moved up or down .
要解决这个问题,请将您的符号服务器放在 _NT_SYMBOL_PATH
Microsoft 东西之前:
_NT_SYMBOL_PATH=cache*C:\symbols;\\mysymsvr\Symbols;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols
关于c++ - 为什么我的本地 dll 在设置 _NT_SYMBOL_PATH 后永远加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548881/