Можно ли изменить размер файла memory.dmp после создания?

Я чувствую себя немного лениво, спрашивая об этом, но я, кажется, не могу вызвать правильный запрос Google, чтобы найти ответы на мои вопросы.

Немного предыстории. У меня есть приложение, которое будет отслеживать другие процессы на предмет необработанных исключений, сбоев и т. Д. При запуске это приложение собирает системную информацию и создает файл memory.dmp с помощью MiniDumpWriteDump.

Теперь нам бы хотелось, чтобы это приложение для мониторинга процессов загружало данные о сбоях на сервер, но очевидно, что файлы memory.dmp могут быть большими, что нежелательно для загрузки. Таким образом, мы обнаруживаем, что мы можем либо уменьшить размер memory.dmp при его создании (потенциально делая memory.dmp бесполезным, если мы не включим этот жизненно важный бит информации), либо в конечном итоге придется загружать массивные файлы.

Есть ли в любом случае после того, как мы создали memory.dmp, что он может быть открыт, некоторый начальный анализ сделан (я знаю, что этот бит возможен), и любые биты memory.dmp, которые считаются бесполезными, будут удалены / отредактированы (и уменьшенная копия файла memory.dmp, загруженного вместо него)?

Под "битами" в memory.dmp я имею в виду, например. Удаление дескриптора данных или информации о выгруженных модулях. Смотрите перечисление MINIDUMP_TYPE

1 ответ

Решение

Сначала воспользуйтесь советом Ливена Керсмейкера. В самом деле, вы хотите сохранить как можно большую часть данных в дампе для последующего анализа, поэтому, если достаточно сжать дамп, сделайте это в первую очередь.

Чтобы более прямо ответить на вопрос...

Если сжатие не достаточно, есть небольшая известная уловка для сжатия файла дампа, единственное упоминание которого скрыто в документации здесь.

Сжатие существующего файла дампа

CDB и WinDbg также могут быть использованы для сжатия файла дампа. Для этого начните отладку существующего файла дампа, а затем с помощью команды.dump создайте файл дампа меньшего размера.

Итак, если у вас есть файл дампа, взятый с .dump /ma, затем вы можете уменьшить его, открыв этот файл дампа и используя .dump /mhi, Выберите любой вариант мини-дамп, который даст вам лучший компромисс между удобством использования и размером. i Параметр является хорошим выбором для ввода только кучи памяти, на которую ссылается стек.

Предостережение: ваш пробег может варьироваться в зависимости от этой техники. С 32-битными дампами у меня был этот трюк без сбоев. 64-битные дампы показались мне глупыми и полностью игнорировали параметры мини-дампов, которые я использовал.

Другие вопросы по тегам