Сборки релиза оптимизированы, поэтому отладчику часто бывает трудно дать вам значения отдельных переменных, особенно локальных переменных, которые часто являются хранящимися регистрами, которые используются для чего-то еще несколькими инструкциями позже.
Именно поэтому вы используете debug build для отладки и release build для сборки, которую вы будете release .
Если вам действительно нужно отладить проблему, возникающую только в сборке релиза (здесь часто встречаются неинициализированные переменные), вы можете использовать специфичную для компилятора #pragma, чтобы де-оптимизировать только определенные части, или вы можете де -оптимизировать определенные файлы, или вы можете использовать инструкции printf.
РЕДАКТИРОВАТЬ: Когда вы говорите «следовать» по этому пути, вы, вероятно, имеете в виду, что это то, как он выглядит, когда вы проходите через него в отладчике. Опять же, код оптимизирован, поэтому сборка не соответствует исходному коду. В частности, возвраты часто оптимизируются, так что в сборке есть только одна фактическая инструкция возврата. Таким образом, пошаговое выполнение кода в сборке релиза не является надежным способом определения происходящего.
Еще раз, правильный способ отладки сборок релиза - это использование printfs и других механизмов. Вы все еще можете использовать отладчик, чтобы получить общее представление о том, что происходит, но вы не можете полагаться на детали, подобные этой.