2008-11-12 3 views
7

В настоящее время мы звоните MiniDumpWriteDump с флагами MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory. Это прекрасно подходит для внутренних построений в конфигурации Debug, но не дает столько информации, сколько нам нужно в конфигурации Release.Какие настройки следует использовать с Minidumps?

В выпуске данные minidump содержат достаточно информации о стеках для отладчика, чтобы определить, где в коде произошел сбой, но никаких других данных. Я не просто означает, что локальные переменные отсутствуют из-за оптимизации, как и ожидалось в сборке Release - я имею в виду, что нет ничего полезного, кроме стека вызовов и текущей строки кода. Никаких регистров, ни местных жителей, ни глобалов, ни объектов, на которые указывают местные жители - ничего. Мы даже не получаем «это», что позволило бы нам просмотреть текущий объект. Это была точка использования MiniDumpWithIndirectlyReferencedMemory - она ​​должна была включать память, на которую ссылаются локальные и стек переменных, но не кажется.

Какие флаги мы должны использовать вместо этого? Мы не хотим использовать MiniDumpWithFullMemory и начинаем генерировать дампы 600 Мбайт +, но с радостью будем расширять дампы, несколько превышающие 90 КБ, которые мы получаем, если это означает получение более полезных данных. Возможно, мы должны использовать MiniDumpWithDataSegments (глобальные) или ...?

+0

Какое исключение произошло сбой вашей программы? – HelloWorld 2015-10-01 13:47:56

ответ

0

WinDbg использует следующие флаги для .dump /ma:

0:003> .dumpdebug 
----- User Mini Dump Analysis 

MINIDUMP_HEADER: 
Version   A793 (62F0) 
NumberOfStreams 13 
Flags   41826 
       0002 MiniDumpWithFullMemory 
       0004 MiniDumpWithHandleData 
       0020 MiniDumpWithUnloadedModules 
       0800 MiniDumpWithFullMemoryInfo 
       1000 MiniDumpWithThreadInfo 
       40000 MiniDumpWithTokenInformation 

Я предлагаю вам заменить MiniDumpWithFullMemory на MiniDumpWithIndirectlyReferencedMemory.

+0

Флаги [зависят от версии] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms680519%28v=vs.85%29.aspx). Убедитесь, что у вас есть новая версия dbghelp.dll, которая поддерживает флаг – 2015-10-14 22:42:31

Смежные вопросы