Для эмулятора вы должны также проверить x86_64.
аюсь реализовать пользовательский макрос активов (аналогично тому, что имеет assert.h), но я хочу иметь возможность продолжить выполнение после того, как получу и утвердлю.
Например, один такойASSERT
реализация может быть:
#define ASSERT(expr) ((void)( (!!(expr)) || (__debugbreak(), 0)))
__debugbreak это встроенная функция компиляторов Microsoft, которая вставляет программную точку останова, эквивалентную_asm int 3
в х86. для iOS существуют разные способы реализации этого __debugbreak:
__asm__("int $3");
для х86.__asm__("bkpt #0");
для обычной руки.__asm__("brk #0");
для arm64__builtin_trap()raise(SIGTRAP)
но со всеми из них, когда мои утверждения утверждают, я не могу просто перешагнуть и продолжить то, что я могу сделать, работая с visual studio; когда что-то утверждается в моих сборках iOS, оно застревает в утверждении, и у меня нет выбора, кроме как прекратить, я даже не могу переместить указатель инструкции вручную и пропустить утверждение.
Можно ли реализовать на iOS утверждения, которые бы взломали отладчик и позволили бы мне продолжить выполнение?