GFlags, чтобы поймать повреждение кучи (кроме Page Heap)?

На одной производственной площадке наше приложение(*) вылетает многократно, но невоспроизводимо. Анализ аварийных дампов ясно показывает, чтоs повреждение кучи: сбои происходят в другом месте, но всегда имеют доступ к нарушениям внутри /kernel32!HeapFreentdll!RtlpLowFragHeapFree, Win Dbg!analyze -v также сообщает о кучи коррупции.

Пока что мы пытались запустить приложение сGFlags вариантКуча страниц, Проблема в том, что накладные расходы памяти Page Heap таковы, что приложение выигралоработать больше (превышение предела виртуальной памяти для 32-битного процесса).

Так,мы не можем использовать Page Heap, Какой другойфлаги было бы полезно добавить так, чтобы мы либо

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

В настоящее время мы пробуем флаги:

Включить маркировку кучиВключить проверку кучи хвоста

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

Я рассмотрел эти флаги, но оставил их пока:

Включить проверку параметров кучи ... Я ожидал бы довольно много затрат, когда система проверяет каждый раз, когда вызывается функция кучиВключить проверку без кучи ... не уверен, что это действительно купит мне что-нибудьВключить проверку кучи при вызове ... здесь даже документы предупреждают о высоких накладных расходах

Одна из проблем, с которыми я (также) сталкиваюсь, заключается в том, что яЯ не уверен, как эти флаги помогают, когда происходит повреждение памяти. Куча страниц, очевидно, будет генерировать нарушение доступа, когда что-то записывается в защитные страницы, но как работают другие флаги?

Нужно ли запускать приложение с Application Verifier для этих других флагов, чтобы помочь? Или возникнет исключение, когда проверочный код обнаружит что-то?

Какая комбинация этих флагов наиболее целесообразна, чтобы приложение все еще могло работать с нормальной производительностью и потреблением памяти на производстве?

(*) : Это'32-разрядное настольное приложение Windows для промышленной автоматизации. В этом случае работает на Win7 64bit (что прекрасно работает на многих других сайтах).

Ответы на вопрос(2)

Ваш ответ на вопрос