Конструктор класса никогда не выполняется в режиме релиза
-
05-07-2019 - |
Вопрос
Именно то, что написано в названии. Я использую MSVC ++ 2008 express, и мой конструктор классов никогда не выполняется при компиляции в режиме выпуска. Он работает в режиме отладки. Р>
Я делаю что-то вроде:
ClassTest test;
test.DoIt();
Точки останова на триггере DoIt ();
, но точки останова на ClassTest :: ClassTest ();
- нет.
Решение
Просто мысль - это может быть оптимизация компилятора в режиме Release, предотвращающая попадание в точку останова. Это может произойти, если конструктор ничего не делает (т. Е. Не работает). Попробуйте добавить несколько простых операторов в конструктор, например
. <Ол>Затем добавьте точку останова на шаге (3) выше и посмотрите, достигнута ли эта точка останова.
Вы можете увидеть всевозможные странные проблемы отладки с тем, как точки останова достигаются в режиме Release из-за сделанных оптимизаций.