当我的应用程序崩溃时,它会生成一个小型转储以允许事后调试。我使用选项 MiniDumpWithIndirectlyReferencedMemory 和 MiniDumpWithPrivateReadWriteMemory。
直到最近,当转储文件的大小开始超过 500MB 时,这一切都很好。当我想开始调试该大小的转储时,Visual Studio 会向我抛出以下错误。
“没有足够的存储空间来处理这个命令”
我有 WinXP 32 位,其中有 4GB 的 RAM,其中我使用的内存少于 1GB。根据 VS2008 在此过程中内存的经济性,它应该有足够的可寻址空间。
我不想做的事情:
- 破解 WinXP 以获得更多内存:该应用程序只会不断增长,因此这只会暂时起作用。这是我发现的可能操作列表: http ://www.msfn.org/board/topic/62001-not-enough-storage-is-available-to-process-this-command/
- 切换到 64 位操作系统
- 省略 MiniDumpWithPrivateReadWriteMemory 选项
那么我应该如何解决这个问题呢?
- 从转储中省略一些dll?通过不同的转储将包含的内存从 dll 组中拆分出来?关于如何做到这一点的任何想法?(如果这是可能的)
- ...?