Оптимизация компилятора во время отладки - PullRequest
1 голос
/ 27 мая 2010

Я использую Visual Studio 2008 Pro для программирования на С ++. Когда я нажимаю кнопку запуска в режиме отладки, применяются ли какие-либо оптимизации компилятора к программе по умолчанию?

Ответы [ 2 ]

1 голос
/ 27 мая 2010

По умолчанию отладчик будет выполнять отладочную сборку, в которой не будет включена оптимизация.

Если оптимизация включена, вы можете заметить, что иногда появляются «Шаг» и «Далее», что вызывает скачок потока программы. Это потому, что компилятор иногда переупорядочивает инструкции, а отладчик делает это лучше всего.

0 голосов
/ 27 мая 2010

Полагаю, это зависит от того, что вы бы классифицировали как оптимизацию, но в основном нет. Например, в последних версиях VS применяется (анонимная) оптимизация возвращаемого значения, по крайней мере, в некоторых случаях, даже если оптимизация отключена (/ O0), как обычно для отладочной сборки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...