Проверка ошибок во время выполнения / RTC - PullRequest
1 голос
/ 06 мая 2011

Я включил / RTC в своем приложении, чтобы обнаружить проблемы с повреждением стека.Приложение имеет много компонентов (dll), а общий LOC составляет около 40K.У него много тем.

Изначально я получал сбой после выполнения 18000 циклов.Но после включения параметра / RTC я получаю мусор в течение 100 циклов.Авария всегда происходит в потоке с именем Reciever Thread.Но он постоянно падает в 3 или 4 местах.Когда происходит сбой, почти все локальные переменные выглядят поврежденными в некоторых случаях.Но я не могу определить основную причину, поскольку не вижу проблем вокруг точек, в которых происходит сбой.

Что я могу сделать, чтобы сузить точку, где происходит повреждение стека?В коде есть операторы try catch, помешает ли он определить причину?

Пожалуйста, помогите мне

Спасибо!

1 Ответ

0 голосов
/ 06 мая 2011

Редактировать: Вы используете оптимизацию:

Если вы компилируете свою программу на командная строка с использованием любого из / RTC опции компилятора, любая прагма оптимизировать инструкции в вашем коде будут молча провалиться Это потому что проверки ошибок во время выполнения недействительны в Релиз (оптимизированная) сборка.

Вы должны использовать / RTC для разработки строит; / RTC не должен использоваться для розничная сборка. / RTC нельзя использовать с оптимизация компилятора (/ O Опции (Оптимизировать код)). Образ программы построен с / RTC будет немного больше и немного медленнее, чем изображение построено с / Od (до 5 процентов медленнее, чем сборка / Od).

Если вы не публикуете какой-либо код, я могу предложить только общие инструменты.

Я использую valgrind --tool=helgrind в Linux для такого рода вещей, но я догадываюсь из вашего вопроса, что вы работаете в Windows.

Вы можете найти ответы на этот вопрос полезными: Есть ли хороший заменитель Valgrind для Windows?

(Это может помочь, если вы разместите код, в котором возникают проблемы, или укажите, какие методы вы использовали для защиты переменных, которые кажутся поврежденными (мьютексы и т. П.))

...