2012-09-03 50 views
13

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

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

或者我还需要源代码和PDB文件吗?

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

如何将PDB文件附加到Visual Studio中的崩溃转储文件?

回答

20

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

接下来最好的事情是将完全相同的可执行文件复制到与发生故障的计算机上安装的完全相同的文件夹中。将.pdb文件复制到同一目录中,如果调试器在原始构建位置找不到它们,则该位置就是调试器的下一个目录。一旦调试器登陆一个包含源代码的语句并且.pdb没有被剥离,那么它会提示你提供源代码文件的位置。

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

在同一个对话框中,打开Microsoft Symbol Server(http://msdl.microsoft.com/download/symbols)。这可以让你获得Windows DLL的符号,并且如果崩溃发生在Windows DLL中,可以准确地追溯到自己的代码。