summaryrefslogtreecommitdiffstats
path: root/misplays.c (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2024-04-24Independent thread control refactorMalfurious1-4/+1
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Multithread version 3Malfurious1-13/+14
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Workaround SIGSTOP on child process startupMalfurious1-1/+6
The debugger design prefers to use PTRACE_SEIZE instead of PTRACE_ATTACH, due to the simpler thread control semantics that are available. However, to utilize the same featureset for forked processes, we can no longer use PTRACE_TRACEME to guarantee that the child becomes a tracee before it execs into the target program. Manually raising SIGSTOP to act as a synchronization point is problematic for a couple reasons: - We need to detect whether the special SIGSTOP was or was not yet encountered by the time our debugger module attaches and interrupts the thread. This complicates the dance of input controls to ensure we are at the exec (and nowhere else) when the real user takes over the controls. - The injection of an extra signal circumvents the benefits we hope to leverage by using the PTRACE_SEIZE semantics. We can no longer assume that all incoming signals are genuine. For the time being, sleep in the newly forked child for the scheduler delay period. This is not bullet-proof, but tends to allow the debugger module enough time to actually seize the thread before anything interesting happens. At this point a single dbg_cont() will cause the child to arrive and stop at the user's exec. Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24setpgid is redundant with setsid and causes an errorMalfurious1-1/+0
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Display name of pending signalMalfurious1-1/+2
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24dbg_realcont for testing purposesMalfurious1-0/+3
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Display installed status of breakpointsMalfurious1-1/+1
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Multithread version 2Malfurious1-204/+168
Signed-off-by: Malfurious <m@lfurio.us>
2024-04-24Multithread version 1Malfurious1-90/+171
Signed-off-by: Malfurious <m@lfurio.us>
2023-07-08Initial debugger core and test UIMalfurious1-47/+273
This is vaguely competent at tracing single-threaded programs. Vi-like keybinds defined in misplays.c. Signed-off-by: Malfurious <m@lfurio.us>
2023-07-06Rename curshelpers unit to 'helpers'Malfurious1-1/+1
Signed-off-by: Malfurious <m@lfurio.us>
2023-07-02Add main source fileMalfurious1-0/+105
Signed-off-by: Malfurious <m@lfurio.us>