Declaração / ponto de interrupção recuperáveis no iOS, como __debugbreak () com o compilador MS
Estou tentando implementar uma macro de ativos personalizados (semelhante ao que assert.h possui), mas quero poder continuar a execução depois de obter e afirmar.
Por exemplo, um dessesASSERT
implementação poderia ser:
#define ASSERT(expr) ((void)( (!!(expr)) || (__debugbreak(), 0)))
__debugbreak é uma função intrínseca nos compiladores da Microsoft que insere o ponto de interrupção do software, equivalente a_asm int 3
em x86. para iOS, existem diferentes maneiras de implementar esse __debugbreak:
__asm__("int $3");
para x86.__asm__("bkpt #0");
para braço regular.__asm__("brk #0");
para arm64__builtin_trap()raise(SIGTRAP)
mas com todos eles quando minha afirmação chega, não posso simplesmente passar por cima e continuar da maneira que posso ao trabalhar com o visual studio; quando algo afirma no meu iOS cria, ele fica preso na afirmação e não tenho escolha a não ser finalizar, não consigo nem mover o ponteiro da instrução manualmente e pular a afirmação.
É possível implementar declarações no iOS que entrariam no depurador e ainda me permitiriam continuar a execução?