В настоящее время мы звоним MiniDumpWriteDump
с MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory
флаги. Это работает просто великолепно для внутренних сборок в Настройке отладочного процесса, но не дает столько информации, сколько нам нужно в конфигурации Выпуска.
В Выпуске данные мини-дампа содержат достаточно данных стека для отладчика для разработки, где в коде отказ произошел, но никакие другие данные. Я просто не подразумеваю, что локальные переменные отсутствуют из-за того, чтобы быть оптимизированным, как Вы ожидали бы в Сборке конечных версий - я имею в виду, нет ничего полезного за исключением стека вызовов и текущей строки кода. Никакие регистры, никакие местные жители, никакой globals, никакие объекты, на которые указывают местные жители - ничто. Мы даже не получаем 'это', которое позволило бы нам просматривать текущий объект. Это было точкой использования MiniDumpWithIndirectlyReferencedMemory
- это должно было включать память, на которую ссылаются местные жители и переменные стека, но не кажется.
Какие флаги мы должны использовать вместо этого? Мы не хотим использовать MiniDumpWithFullMemory
и начните генерировать 600 МБ + дампы, но счастливо развернул бы дампы несколько вне 90 КБ, которые мы в настоящее время получаем, если это означало получать более полезные данные. Возможно, мы должны использовать MiniDumpWithDataSegments
(globals) или...?