Earlier quoted context omitted.
This would involve the debugger actually being structured in a way that makes this make sense. A debugger like GCC has a gnarly data structure that represents the machine state, and it contains things like EIP/RIP. There is a command 'backtrace' that takes the machine state and attempts to generate a backtrace. And there's a command 'continue' that resumes execution. int3 is a "trap". continue will resume execution a…
I assume you meant GDB, not GCC, right? Seems like a deficiency in GDB (and maybe LLDB too), not in the kernel or x86.
Deficiency or not, it breaks debugging. I’m willing to pay a cost of one byte per breakpoint as a workaround.
And GDB has far more outrageous, if less-frequently hit, bugs in its architectural state handling. I’m not holding my breath for a fix.