XCode, эквивалентный из '__ asm интервал 3 / DebugBreak () / Останов?

Запомните это:

Потребители едят ужин (супер); Производитель продлевает фабрику своего родителя

21
задан gcamp 31 August 2011 в 18:12
поделиться

4 ответа

http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeProjectManagement/090_Running_Programs/chapter_11_section_3.html

asm {trap}            ; Halts a program running on PPC32 or PPC64.

__asm {int 3}         ; Halts a program running on IA-32.
22
ответ дан 29 November 2019 в 20:21
поделиться

Можно просто вставить вызов в Debugger() —, который остановит приложение в отладчике (если это будет выполнено под отладчиком), или остановите его за исключением, если это не.

кроме того, не избегают assert() по "причинам мобильности" , — мобильность - то, почему это существует! Это - часть Стандарта C, и Вы найдете его везде, где Вы находите компилятор C. То, что Вы действительно хотите сделать, определяют новое обработчик утверждений , который делает повреждение отладчика вместо того, чтобы звонить abort(); фактически все компиляторы C предлагают механизм, которым можно сделать это.

Обычно это сделано путем простой реализации функции или макроса, который следует за этим прототипом:

void __assert(const char *expression, const char *file, int line);

Это называют, когда выражение утверждения перестало работать. Обычно это, не assert() само, то, что работает "эти printf() сопровождаемый abort()", который является зарегистрированным поведением значения по умолчанию. Путем настройки этой функции или макроса, можно изменить его поведение.

10
ответ дан 29 November 2019 в 20:21
поделиться

Я нашел следующее в Форум Apple :

XCode не идет ни с какими символьными встроенными повреждениями - но они быстры для добавления. Перейдите к окну точек останова и добавьте:

- [Повышение NSException]

2
ответ дан 29 November 2019 в 20:21
поделиться

Существует также следующая функция, которая доступна как кросс-платформенный прямой Останов () альтернатива:

#include <stdlib.h>

void abort(void);

Мы используем его в нашем кросс-платформенном механизме для реализации iPhone в случае фатального, утверждает. Кросс-платформенный через Nintendo DS/Wii/XBOX 360/iOS и т.д...

1
ответ дан 29 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: