Чтобы добавить к Адрианам ответ и в целом, говоря о сборках отладки и релиза:
Вот некоторые факторы, которые влияют на ваши сборки:
- Вы ссылаетесь на отладочные или выпускные библиотеки времени выполнения (/ MD против / MDd)
NDEBUG
(режим выпуска) или _DEBUG
(режим отладки) # определены _SECURE_SCL
(или некоторый эквивалент) определен (или нет) - Оптимизация компилятора включена (до некоторой степени)
"Отладочная сборка" обычно включает _DEBUG
,_SECURE_SCL=1
, /MDd
и все оптимизации компилятора отключены.Это приводит к «самому безопасному», «наиболее проверенному» режиму выполнения, но также должно быть самой медленной версией, которую вы можете получить для своего исполняемого файла. Коэффициенты скорости и безопасности должны быть полностью независимы от того, запускаете ли вы вашу программу под отладчиком или нет! - Сборка отладки дает вам максимальную сеть безопасности и обнаружения ошибок, полностью независимо от того,Программа подключена к отладчику.
Далее идет неоптимизированная сборка релиза: у вас есть все настройки режима релиза (NDEBUG, _SECURE_SCL = 0 и т. д.), но вы отключить все оптимизации компилятора.Это хорошо для тестирования, так как производительность не будет слишком сильно снижаться, и вы можете отладить все в порядке.Опять же, полезность этого не зависит от того, запускаете ли вы свою программу под отладчиком.
Наконец-то наступают полные оптимизации.(/Ox
+ полное встраивание + возможно полная оптимизация prg): хотя это то, что вы хотели бы отправить по соображениям производительности, есть вероятность, что в вашей компании не хватает людей, способных отладить это.То есть, учитывая аварийный дамп, кому-то, скорее всего, нужно некоторое количество знаний asm и что выводит компилятор, чтобы иметь некоторый смысл аварийного дампа (или даже некоторой случайной точки останова, когда фактически выполняется под отладчиком).Опять же, плюсы / минусы для полного выбора не зависят от запуска / запуска prg под отладчиком.