То, как делают я использую, утверждает при отладке?
Q: Когда я отлаживаю, почему мои отказы утверждения не регистрируют или повреждаются?
A: Когда я отлаживаю, почему мои отказы утверждения не регистрируют или повреждаются?
«Проверка», «проверьте» и «потребуйте», чтобы макросы, определенные в <AssertMacros.h>, генерировали «производство» (т.е. неотладка) код по умолчанию. Для них макросы для генерации отладки кодируют это выводы к stderr, и прерывает отладчик, который необходимо было или определить DEBUG к ненулевому или DEBUG_ASSERT_PRODUCTION_CODE, определенному для обнуления, когда включен заголовок <AssertMacros.h>.
Для тестирования это создает новый проект Xcode 2.2 для стандартного инструмента и заменяет содержание значения по умолчанию <main.c> файл со следующим текстом:
Перечисление 1 <main.c>
#include <stdio.h>
#include <AssertMacros.h>
int main( int argc, char* argv[] )
{
int error = 1;
verify_noerr( error );
require_noerr( error, Oops );
printf("You shouldn't be here!\n");
Oops: ;
return error;
} |
Если Вы разработаете этот проект для настройки отладочного процесса, установите контрольную точку на первой строке основного и затем единственного шага через, то Вы будете видеть, что «verify_noerr» проигнорирован, и «require_noerr» (тихо) перейдет к метке «CantDoAnything». (Примечание: нажмите «консольную» кнопку на панели инструментов окон отладки для открытия gdb области вывода.) Это - ожидаемое поведение для производственного кода. Теперь добавьте «#define DEBUG 1» как первую строку перед тем, чтобы включать, сборкой, выполненным и единственным шагом через код снова. На сей раз консоль отладки должна вывести следующий текст, поскольку Вы продвигаетесь через код:
AssertMacros: error == 0 , file: /<your/path/here>/main.c, line: 10 AssertMacros: error == 0 , file: /<your/path/here>/main.c, line: 11 |
Для определения DEBUG в проекте, можно сделать любой из ниже:
добавьте «#define DEBUG 1» перед любым из «#include» в Вашем префиксном файле.
Добавьте, что «DEBUG=1» к Вашему «дополнительному препроцессору определяет» для Вашего Целевого объекта отладки, таким образом, утверждения тихи в цели Выпуска.
В конфигурации «Отладки» XCode, в наборе «Предварительной обработки» устанавливает «Макросы Препроцессора», оценивают «DEBUG=1»
В Вашем или целевом наборе настроек сборки проекта «OTHER_CFLAGS» к «$ (значение)-DDEBUG=1» для конфигурации «Отладки».
Добавьте «#define DEBUG 1» только к исходным файлам, где Вы хотите включенные утверждения, и затем каждое исключение в просто тех файлах вызовет утверждение.
История версии документа
| Дата | Примечания |
|---|---|
| 30.06.2006 | Новый документ, что, как, я включаю, утверждает, таким образом, они регистрируют свои сообщения и/или повреждение, когда я отлаживаю? |