В настоящее время мы звоните MiniDumpWriteDump
с флагами MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory
. Это прекрасно подходит для внутренних построений в конфигурации Debug, но не дает столько информации, сколько нам нужно в конфигурации Release.Какие настройки следует использовать с Minidumps?
В выпуске данные minidump содержат достаточно информации о стеках для отладчика, чтобы определить, где в коде произошел сбой, но никаких других данных. Я не просто означает, что локальные переменные отсутствуют из-за оптимизации, как и ожидалось в сборке Release - я имею в виду, что нет ничего полезного, кроме стека вызовов и текущей строки кода. Никаких регистров, ни местных жителей, ни глобалов, ни объектов, на которые указывают местные жители - ничего. Мы даже не получаем «это», что позволило бы нам просмотреть текущий объект. Это была точка использования MiniDumpWithIndirectlyReferencedMemory
- она должна была включать память, на которую ссылаются локальные и стек переменных, но не кажется.
Какие флаги мы должны использовать вместо этого? Мы не хотим использовать MiniDumpWithFullMemory
и начинаем генерировать дампы 600 Мбайт +, но с радостью будем расширять дампы, несколько превышающие 90 КБ, которые мы получаем, если это означает получение более полезных данных. Возможно, мы должны использовать MiniDumpWithDataSegments
(глобальные) или ...?
Какое исключение произошло сбой вашей программы? – HelloWorld 2015-10-01 13:47:56