15

我有一个*.dmp崩溃的应用程序的(转储)文件。现在,我想分析另一台机器上的崩溃进程。也就是说,应用程序在一台机器上崩溃了,而我在另一台机器上安装了 Visual Studio。

现在,我需要什么才能看到堆栈跟踪和我的应用程序的所有符号?*.exe文件和文件是否*.dmp足够?

还是我还需要源代码和 PDB 文件?

如果是这样,源代码和可执行文件是否应该放在与进程运行的机器上相同的目录结构中?

如何在 Visual Studio 中将 PDB 文件附加到故障转储文件?

4

1 回答 1

23

不,您肯定需要 .pdb 文件来获得体面的堆栈跟踪。到目前为止,最简单的方法是在您构建程序的机器上执行此操作,源代码和 .pdb 文件将位于正确的位置。

下一个最好的方法是将完全相同的可执行文件复制到故障机器上安装它的完全相同的文件夹中。将 .pdb 文件复制到同一个目录中,如果在原始构建位置找不到它们,调试器将在该目录中查找它们。一旦调试器到达带有源代码的语句并且 .pdb 没有被剥离,那么它将提示您提供源代码文件的位置。

下一个最好的事情是工具 + 选项、调试、符号并将路径添加到包含 .pdb 文件的目录。

在同一个对话框中,还打开 Microsoft 符号服务器 (http://msdl.microsoft.com/download/symbols)。这将为您获取 Windows DLL 的符号,并让您在 Windows DLL 中发生崩溃时准确地追溯到您自己的代码。

于 2012-09-03T19:27:26.960 回答