jasserts failures first appear in
libsystem_kernel.dylib`__kill and one has to go up the stack to see the assertion, in contrast to experience on Intel Macs, a small patch makes it use
__builtin_trap instead of
kill and it appears to act like it used to.
__builtin_trap you lose the ability to continue past a failed assertion. Being able to continue is more valuable than having to go one step up the stack.
Good to know. With further digging it appears that
__builtin_debugtrap() does allow continuing past failed assertions and also doesn’t require the extra stack step.
I really thought we tried all the variations of breaking into the debugger and couldn’t find one that would both break in the right place and wasn’t terminal…
__builtin_debugtrap certainly appears to be doing the right thing though.
Thanks, we’ll make that change.