summaryrefslogtreecommitdiffstats
path: root/debugger.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2024-04-27Fix removal of temporary breakpoints when rapidly restarting threadMalfurious1-0/+1
This bug would occur when the debugger keeps rapidly hitting a breakpoint and restarting execution (and the breakpoint is temporary / one-time). For example, stepping over a long recursive call. It would be possible for the user to manually interrupt execution at the precise moment that the debugee was returning from a single step over the breakpoint. In this scenario, the thread would correctly remain stopped as requested, however the temporary breakpoint would incorrectly remain in the breakpoint list. The cause of this issue is that uninstall_breakpoints only considered removing temporaries if they were currently installed for use. This makes sense, as we have used the b->installed flag as a sort of check to see if we have YET installed the breakpoint (rather than "is it STILL installed?") to ensure that we don't remove it too soon. The more accurate logic here is to acctually check whether the breakpoint has EVER been installed and only then consider it for removal if it is temporary. This fixes the case in question without breaking behavior when performing an initial run single step. Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Independent thread control refactorMalfurious1-3/+3
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Multithread version 3Malfurious1-14/+16
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24dbg_realcont for testing purposesMalfurious1-0/+1
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Multithread version 2Malfurious1-57/+18
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Multithread version 1Malfurious1-14/+72
Signed-off-by: Malfurious <m@lfurio.us>
2023-07-08Initial debugger core and test UIMalfurious1-0/+55
This is vaguely competent at tracing single-threaded programs. Vi-like keybinds defined in misplays.c. Signed-off-by: Malfurious <m@lfurio.us>