2013-07-17 8 views
2

Какая разница в отладке в режиме отладки и режиме выпуска? В режиме освобождения таблица символов, которая загружается, содержит меньше информации о символах, что означает меньшую информацию об отладке. Но если мы установили «Disabled (/ Od)» в C/C++ -> Оптимизация-> Оптимизация, то я не мог видеть разницы в двух типах отладки. Есть ли разница в режиме отладки и режиме деблокирования (при отключенной оптимизации)?В чем отличие отладки в режиме отладки и режиме деблокирования с отключенной оптимизацией?

ответ

3

Там очень мало магии. Debug and Release - это просто имена, назначенные набору параметров компилятора. Наиболее подходящим вариантом для конфигурации Debug является опция/Od, она отключает оптимизатор, поэтому ваш код легче отлаживать.

Очевидно, что вы всегда можете изменить параметры конфигурации выпуска, чтобы они соответствовали параметрам конфигурации Debug. Как отключить оптимизатор. Теперь между ними нет никакой существенной разницы, и настройка Release ведет себя так же, как конфигурация Debug в отладчике.

Других вариантов обычно используются в конфигурации отладки, которая влияет на ваш код:

  • _DEBUG макрос определен, утверждает сгорит
  • функции встраивания выключено
  • параметр/RTC включен , очень хорошо при ловле ошибок в вашем коде
  • макрос _HAS_ITERATOR_DEBUGGING определяется, перехватывает ошибки в коде, который использует классы STL
  • вы свяжетесь с отладочной сборкой t он CRT, позволяя утверждает, что строить
  • отладки Распределитель будет включен, если вы #included crtdbg.h
  • редактировать + продолжать поддержка включена, побочный эффект намного больше стек кадры
+0

Тогда означает ли это, что режим освобождения без оптимизации в буквальном смысле равен режиму отладки? Если да, то почему dll не загружается при загрузке dll в режиме отладки? или наоборот. –

+1

Не «буквально», я перечислил другие параметры, которые обычно отличаются в конфигурации Debug./Od - безусловно самая важная разница, оптимизатор делает отладки довольно сложной. Вы не упоминаете «не загружать», прежде чем смешивать несколько версий CRT в одной программе, как правило, довольно сложно. 5-й маркер в списке, вы хотите избежать использования как отладочной, так и выпускной версий ЭЛТ. Легко избежать, пока вы держите проекты DLL и EXE в одном и том же решении. –

Смежные вопросы