我有一个崩溃的应用程序的*.dmp
(转储)文件。现在,我想在另一台机器上分析崩溃的进程。也就是说,应用程序在一台计算机上崩溃了,我在其他计算机上安装了Visual Studio。
现在,我需要什么才能看到堆栈跟踪和我的应用程序的所有符号? *.exe
文件和*.dmp
文件是否足够?
或者我还需要源代码和PDB文件吗?
如果是这样,源代码和可执行文件是否应该放在与进程运行的机器相同的目录结构中?
如何在Visual Studio中将PDB文件附加到崩溃转储文件?
答案 0 :(得分:22)
不,你肯定需要.pdb文件来获得合适的堆栈跟踪。到目前为止,最简单的方法是从构建程序的机器上执行此操作,源代码和.pdb文件将位于正确的位置。
接下来最好的事情是将完全相同的可执行文件复制到故障机器上安装它的完全相同的文件夹中。将.pdb文件复制到同一目录中,如果调试器在原始构建位置找不到它们,那么这就是调试器的下一个目录。一旦调试器落在带有源代码的语句上并且.pdb没有被剥离,它就会提示你给出源代码文件的位置。
接下来最好的事情是Tools + Options,Debugging,Symbols并添加包含.pdb文件的目录的路径。
在同一个对话框中,还要打开Microsoft Symbol Server(http://msdl.microsoft.com/download/symbols)。这将为您提供Windows DLL的符号,并允许您在Windows DLL中发生崩溃时准确追溯到您自己的代码。