我的minidump太大而无法被Visual Studio加载,我该如何解决?

时间:2011-03-09 11:20:44

标签: c++ windows visual-studio minidump

当我的应用程序崩溃时,会生成一个minidump以允许事后调试。我使用MiniDumpWithIndirectlyReferencedMemory和MiniDumpWithPrivateReadWriteMemory选项。

直到最近,当转储文件的大小超过500MB时,这一切都很有效。当我想开始调试大小的转储时,Visual Studio会向我抛出以下错误。

“没有足够的存储空间来处理此命令”

我有32位WinXP,其中4GB内存,其中我使用的内存不到1GB。根据VS2008在此过程中的内存使用情况,它应具有足够的可寻址空间。

我不想做的事情:

那我该如何解决呢?

  • 从转储中省略一些dll?通过不同的转储从dll组拆分包含的内存?有关如何做到这一点的任何想法? (如果这是可能的话)
  • ...?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用Debugging Tools for Windows包中的WinDbg来查看它是否比Visual Studio更好地管理内存。但是我建议尝试使用64位操作系统,即使你不想这样做。在这些日子里,您应该将您的应用程序也提供为本机64位Windows应用程序,为此您还需要64位Windows。

答案 1 :(得分:0)

我在使用Windows 7 64位的VS2010上遇到了同样的问题。尝试加载使用MiniDumpWithPrivateReadWriteMemory设置创建的任何转储失败,并显示“没有足够的存储空间可用于处理此命令”。

我认为它实际上不是内存问题,因为使用MiniDumpWithFullMemory打开转储工作正常并且实际上会创建更大的转储。

这似乎是视觉工作室的一个错误,令人失望的是它后来仍然存在多个版本。