Мои мини-дампы становятся слишком большими для загрузки Visual Studio, как мне решить эту проблему? - PullRequest
2 голосов
/ 09 марта 2011

Когда мое приложение падает, оно генерирует мини-дамп, чтобы разрешить отладку после смерти.Я использую параметры MiniDumpWithIndirectlyReferencedMemory и MiniDumpWithPrivateReadWriteMemory.

Все это прекрасно работало до недавнего времени, когда файлы дампа начали получать размер более 500 МБ.Visual Studio выдает мне следующую ошибку в тот момент, когда я хочу начать отладку дампа такого размера.

"Недостаточно памяти для обработки этой команды"

У меня 32-разрядная версия WinXP, с4 ГБ оперативной памяти, в которой я использую менее 1 ГБ.В зависимости от того, насколько экономичен VS2008 с его памятью в этой процедуре, он должен иметь много адресуемого пространства.

Что я не хочу делать:

  • Взломать WinXP, чтобы получить больше памяти: Приложение только продолжает расти, так что это будет работать только временно.Вот список возможных действий, которые я нашел: http://www.msfn.org/board/topic/62001-not-enough-storage-is-available-to-process-this-command/
  • Переключиться на 64-битную ОС
  • Опустить параметр MiniDumpWithPrivateReadWriteMemory

Так как мне решить эту проблему?

  • Пропустить некоторые DLL из свалки?Разделить включенную память от групп DLL по разным дампам?Есть идеи, как это сделать?(если это вообще возможно)
  • ...?

Ответы [ 2 ]

1 голос
/ 09 марта 2011

Вы можете попробовать использовать WinDbg из пакета Средства отладки для Windows , чтобы проверить, управляет ли он памятью лучше, чем Visual Studio. Однако я бы предложил попробовать 64-битную ОС, даже если вы не хотите этого делать. В настоящее время вы должны предоставлять свое приложение также как собственное 64-битное Windows-приложение, и для этого вам все равно понадобится 64-битная Windows.

0 голосов
/ 07 декабря 2012

Я сталкиваюсь с той же проблемой на VS2010 с использованием Windows 7 64-бит. Попытка загрузить любой дамп, созданный с помощью набора MiniDumpWithPrivateReadWriteMemory, завершается с ошибкой «Недостаточно памяти для обработки этой команды».

Я не думаю, что это на самом деле проблема с памятью, потому что открытие дампа с помощью MiniDumpWithFullMemory работает нормально, и это на самом деле создает большие дампы.

Это похоже на ошибку в Visual Studio, и разочаровывает, что она все еще существует несколькими версиями позже.

...