::bp -c '$<systemdump' stopped working
Setting a breakpoint with $<systemdump as its action in kmdb /used to/ cause a panic followed by a core dump. It doesn't work anymore.
Updated by Rich Lowe over 7 years ago
I debugged this a bit when rv mentioned it on IRC.
What happens is that when we continue from the breakpoint, we run the continue handler for breakpoints which steps. Stepping needs to know where the next instruction is, which means knowing the length of the current instruction, but since %rip has been 0'd by $<systemdump, this instruction is invalid and of no length, so the continue fails.
Continuing again will work, because we're no longer stopped at a breakpoint (we ran that much of the continue handler, so it's cleared), and there's no implicit step.
See kmt_brkpt_cont() for the implicit step, and how we get there, re: our progress through kmdb's event system.