我能够调试我的大型组织生成的几乎所有崩溃转储,因为所有符号和相关可执行文件都压缩存储在中心符号存储位置。在我需要将崩溃转储及其所有相关的pdb和可执行文件发送到公司外部以调试第三方库之前,永远不会有问题。
我最后一次这样做,我不得不执行大量的试验和错误来从符号存储中收集我需要的文件,这些文件大多是机器组织的,而不是非常人性化的。如果我可以打开崩溃转储并让Visual Studio提取并将我需要的所有文件从符号存储区保存到另一个文件夹,那么我可以发送它进行分析。
知道有什么方法可以做到吗?
答案 0 :(得分:0)
我不知道Visual Studio的解决方案。但是,这个问题可以通过Microsoft免费提供的Debugging Tools for Windows中的WinDbg或SymChk来解决。
据我所知,符号服务器只存储PDB而不存储可执行文件,因此以下说明仅适用于PDB。
WinDbg有一个命令!SaveAllModules
,它可能用于保存转储文件中存在的所有DLL和可执行文件。我没有很多经验。
在具有Internet连接并连接到公司的符号服务器的计算机上
.reload /f
和ld*
这会将所有可用符号下载到已定义的目录中。
在具有Internet连接并连接到公司的符号服务器的计算机上
从命令行提示符处运行
symchk /id <dumpfile>.dmp /s srv*x:\symbols\*http://msdl.microsoft.com/download/symbols /od
其中
/id
用于“输入转储”/s
定义符号路径。确保你的语法正确。不要忘记包含公司符号服务器/od
用于“输出详细信息”(详细模式)以显示任何问题