Xcode / Cocoa: Каковы различия между сборками отладки и выпуска? - PullRequest
15 голосов
/ 17 апреля 2009

Каковы различия между сборками отладки и выпуска для приложения Какао? Я знаю, что отладочная версия содержит дополнительную информацию для отладки, но что еще отличается?

Ответы [ 2 ]

32 голосов
/ 17 апреля 2009

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

Отладочные сборки не компилируются с оптимизацией (-O0 с gcc), в то время как релизные сборки компилируются с оптимизацией (обычно -O2 или -O3). Оптимизация делает отладку намного сложнее. Если вы попытаетесь отладить приложение выпуска, отладчик будет сильно сбит с толку, поскольку операторы сборки больше не совпадают с операторами HLL, операторы переупорядочиваются, функции встроены, циклы развертываются и т. Д.

В сборках отладки и выпуска также определены различные символы препроцессора, и некоторый код условно компилируется на их основе (например, проверки границ массива, утверждения и т. Д.), Хотя это сильно зависит от приложения. Типичным примером может быть #define NDEBUG для режима деблокирования, что приводит к удалению утверждений.

0 голосов
/ 18 апреля 2009

В Tiger сборки отладки "связаны ноль". Это оптимизировано только для вашей среды и не является полноценной сборкой.

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