We have some failures on an arm64 CI bot where the kernel has told us that we've completed an instruction step, but when lldb checks to confirm that the thread was performing an instruction step, it is not. The debugger doesn't know how this could happen, so it stops at that point and notifies the user that there has been an anomalous occurrence (calls it an "EXC_ARM_BREAKPOINT"). Fine, but under the testsuite this will cause a testsuite failure.
This adds an llvm::report_fatal_error when not built NDEBUG if this state happens, and include two additional pieces of information in the error message to help debug what the CI bot is hitting. I'll change this to an assert without the additional information later, so it's more assertively erroring in development builds if this combination of events happens again. But I can't dynamically construct a string for an assert and have it dumped, so I'm using fatal error to debug the CI bot.