1

我已经使用 win32 api [DllImport("DbgHelp.dll", SetLastError = true)] 创建了一个小型转储 private static extern bool MiniDumpWriteDump(

dmp 文件创建成功。

我正在尝试在另一个 Visual Studio 实例中打开此 *.dmp 文件以找到崩溃的位置,

在 Visual Studio --> 文件 --> 打开项目中,dmp 文件选项不可用。

我在文件打开菜单中选择了所有文件,然后打开了 dmp 文件。但我无法调试,

知道为什么我在 Visual Studio 中的转储文件选项被禁用。

我知道我可以使用 windbg 和其他工具,我可以轻松使用 Visual Studio,因为它可供我使用。

4

2 回答 2

2

我不是百分百确定。但是,我认为即使您在 VisualStudio 中打开它,VS 也不支持 WinDbg 用于分析 dmp 的命令的一半。所以,我会坚持使用 WinDbg。WinDbg 是免费下载的......所以你也可以使用它。它不是最容易使用的,我总是要打开帮助才能找到我想要的命令,但它确实做得很好。

在此处下载 32 位:http:
//www.microsoft.com/whdc/devtools/debugging/installx86.Mspx

于 2008-12-14T18:48:54.683 回答
1

听起来您正在正确打开转储。

这是 Visual Studio 帮助文件中的内容:

"打开转储文件 在“文件”菜单上,单击“打开”,然后单击“项目”。

在“打开项目”对话框中,找到并选择转储文件。

它通常具有 .dmp 扩展名。

单击确定。

要查找用于调试故障转储的二进制文件,Visual Studio 2005 会查找符号搜索路径。要确保 Visual Studio 2005 找到二进制文件,您可以在“选项”对话框或“模块”窗口中添加符号搜索路径。有关更多信息,请参阅如何:指定符号路径。”

你自己说,

“...并打开了 dmp 文件。但我无法调试”

所以你在 Visual Studio 中打开转储文件 OK,但你的意思是,“我无法调试?”

如果看不到源代码,那是因为 Visual Studio 不知道它在哪里。按照说明设置符号搜索路径。

如果您无法单步执行您的代码,那是因为您无法使用小型转储来执行此操作。产生 minidump 的进程已经消失,无法进一步执行。

如果您无法检查调用堆栈或变量内容,那是因为 Visual Studio 找不到包含调试信息的 .pdb 文件。

于 2008-12-14T19:54:19.450 回答