Запомните это:
Потребители едят ужин (супер); Производитель продлевает фабрику своего родителя
blockquote>
asm {trap} ; Halts a program running on PPC32 or PPC64.
__asm {int 3} ; Halts a program running on IA-32.
Можно просто вставить вызов в Debugger()
—, который остановит приложение в отладчике (если это будет выполнено под отладчиком), или остановите его за исключением, если это не.
кроме того, не избегают assert()
по "причинам мобильности" , — мобильность - то, почему это существует! Это - часть Стандарта C, и Вы найдете его везде, где Вы находите компилятор C. То, что Вы действительно хотите сделать, определяют новое обработчик утверждений , который делает повреждение отладчика вместо того, чтобы звонить abort()
; фактически все компиляторы C предлагают механизм, которым можно сделать это.
Обычно это сделано путем простой реализации функции или макроса, который следует за этим прототипом:
void __assert(const char *expression, const char *file, int line);
Это называют, когда выражение утверждения перестало работать. Обычно это, не assert()
само, то, что работает "эти printf()
сопровождаемый abort()
", который является зарегистрированным поведением значения по умолчанию. Путем настройки этой функции или макроса, можно изменить его поведение.
Я нашел следующее в Форум Apple :
XCode не идет ни с какими символьными встроенными повреждениями - но они быстры для добавления. Перейдите к окну точек останова и добавьте:
- [Повышение NSException]
Существует также следующая функция, которая доступна как кросс-платформенный прямой Останов () альтернатива:
#include <stdlib.h>
void abort(void);
Мы используем его в нашем кросс-платформенном механизме для реализации iPhone в случае фатального, утверждает. Кросс-платформенный через Nintendo DS/Wii/XBOX 360/iOS и т.д...