Мы столкнулись с крахом в приложении Windows C++ сразу при запуске. В настоящее время авария происходит только на нашей машине с выигрышем 8.1 (другие машины для разработки, являющиеся окнами 7), и происходят только в версиях релизов. Трассировка стека каждый раз немного отличается, но всегда связана с распределением памяти, поэтому это, вероятно, проблема с кучей коррупции.Кучное повреждение, вызванное состоянием гонки - не происходит, когда приложение замедляется. Как отлаживать?
Проблема заключается в том, что, как только приложение немного замедлилось, авария не происходит:
Debug сборки не врезаться.
Если приложение для сборки выпуска связано с отладочным crt (статическим или динамическим), авария не возникает, поэтому куча отладки CRT не может использоваться для отслеживания проблемы.
Если приложение Application подключено к приложению и выбраны тесты «кучи», приложение не будет аварийно завершено.
Запуск приложения через «Dr.Memory» также приводит к тому, что авария не происходит.
Во всех этих случаях, когда авария не бывает, применение слегка замедляется, и особенно при запуске действительно занимает немного больше времени, так что мое предположение, что это повреждение кучи, вызванное состоянием гонки.
Если мы не можем использовать кучу отладки CRT или инструменты, которые замедляют выполнение приложения (потому что это не сбой), то какие хорошие подходы к отслеживанию обстоятельств, под которыми куча развращает?