[RFC] multi-process gdb (forks, checkpoints)
Michael Snyder
msnyder@redhat.com
Mon Nov 28 23:16:00 GMT 2005
Folks, I'm pretty close to actually submitting this for approval;
this is (knock on wood) my last request for pre-review.
Instead of attaching a patch, I've checked this in on a branch:
msnyder-fork-checkpoint-branch.
This is, no kidding, gdb debugging multiple processes.
I've adapted it to work with the existing "follow-fork"
infrastructure, so that when a process forks, instead of
being forced to choose between debugging the parent or the
child, we can now debug both. The user sets a mode flag,
and rather than detaching from one of the forks, gdb will
set it aside (in a ptrace-stopped state), and let you
return to debugging it later, switching back and forth
at will.
Daniel, it handles quit, kill, and inferior exit.
If one process exits and there's another available,
it just switches automatically (as it would with threads).
I've added a testcase, gdb.base/multi-forks.exp, which serves
to demonstrate the debugging of 16 forks at a time.
And of course checkpoint and restart are in there too.
Eli, I'll be working on documentation. For the mean time,
the user interface looks like this:
set/show detach-on-fork (on/off) [default on]
info forks
fork <n> [analogous to thread <n>]
detach-fork <n>
delete-fork <n> [and kill]
checkpoint
restart <n>
info checkpoints
delete-checkpoint <n>
detach-checkpoint <n> [well...]
More information about the Gdb
mailing list