我使用win32 api创建了一个minidump [DllImport(“DbgHelp.dll”,SetLastError = true)] private static extern bool MiniDumpWriteDump(
dmp文件已成功创建。
我正在尝试在另一个Visual Studio实例中打开此* .dmp文件以找到崩溃的位置,
在visual studio中 - > FILE - >打开项目dmp文件选项不可用。
我选择了文件打开菜单中的所有文件,然后打开了dmp文件。但我无法调试,
任何想法为什么我的视觉工作室中的转储文件选项被禁用。
我知道我可以使用windbg和其他工具,我可以很容易地使用Visual Studio,因为它可供我使用。
答案 0 :(得分:2)
我不是百分百肯定。但是,我认为即使你在VisualStudio中打开它,VS也不支持WinDbg用于分析dmp的一半命令。所以,我只是坚持使用WinDbg。 WinDbg是一个免费下载...所以你也可以使用它。这不是最容易使用的,我总是打开帮助找到我想要的命令,但它确实做得很好。
在此下载32位:
http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx
答案 1 :(得分:1)
听起来你正确地打开转储。
以下是Visual Studio帮助文件中的内容:
“打开转储文件 在“文件”菜单上,单击“打开”,然后单击“项目”。
在“打开项目”对话框中,找到并选择转储文件。
它通常会有.dmp扩展名。
单击“确定”。
要查找用于调试故障转储的二进制文件,Visual Studio 2005会在符号搜索路径中查找。若要确保Visual Studio 2005找到二进制文件,可以在“选项”对话框或“模块”窗口中添加符号搜索路径。有关更多信息,请参见如何:指定符号路径。“
你自己说,
“......并打开dmp文件。但我无法调试”
所以你在Visual Studio中打开转储文件OK,但是你的意思是“我无法调试?”
如果您看不到源代码,那是因为Visual Studio不知道它在哪里。按照说明设置符号搜索路径。
如果你不能通过你的代码,那是因为你不能用minidump做到这一点。产生minidump的过程已经消失,无法进一步执行。
如果您无法检查调用堆栈或变量内容,那是因为Visual Studio无法找到带有调试信息的.pdb文件。