2

アプリケーションがクラッシュすると、事後分析デバッグを可能にするミニダンプが生成されます。オプション MiniDumpWithIndirectlyReferencedMemory と MiniDumpWithPrivateReadWriteMemory を使用します。

ダンプファイルのサイズが 500MB を超え始めた最近まで、すべてうまく機能していました。そのサイズのダンプのデバッグを開始しようとすると、Visual Studio から次のエラーがスローされます。

「このコマンドを処理するのに十分なストレージがありません」

私は 32 ビットの WinXP を使用しており、4 GB の RAM を搭載していますが、使用している RAM は 1 GB 未満です。この手順で VS2008 のメモリがどれほど経済的であるかにもよりますが、十分なアドレス可能なスペースが必要です。

やりたくないこと:

  • WinXP をハックしてメモリを増やします。アプリは成長し続けるため、これは一時的にしか機能しません。私が見つけた可能なアクションのリストは次のとおりです
  • 64 ビット OS に切り替える
  • MiniDumpWithPrivateReadWriteMemory オプションを省略します

では、これをどのように解決すればよいでしょうか。

  • ダンプからいくつかの dll を省略しますか? 含まれているメモリを dll のグループから異なるダンプに分割しますか? これを行う方法について何か考えはありますか?(これが可能であれば)
  • ...?
4

2 に答える 2

1

Debugging Tools for Windowsパッケージの WinDbg を使用して、Visual Studio よりもメモリを適切に管理できないかどうかを確認できます。ただし、やりたくない場合でも、64 ビット OS を試すことをお勧めします。最近では、アプリケーションをネイティブの 64 ビット Windows アプリケーションとしても提供する必要があります。そのためには、とにかく 64 ビット Windows が必要です。

于 2011-03-09T11:44:18.897 に答える
0

Windows 7 64 ビットを使用している VS2010 でも同じ問題が発生しています。MiniDumpWithPrivateReadWriteMemory を設定して作成されたダンプを読み込もうとすると、「このコマンドを処理するのに十分なストレージがありません」で失敗します。

MiniDumpWithFullMemory でダンプを開くと問題なく動作し、実際にはより大きなダンプが作成されるため、実際にはメモリの問題ではないと思います。

これは Visual Studio のバグのようであり、いくつかのバージョンの後でまだ存在していることに失望しています。

于 2012-12-07T18:25:25.420 に答える