This is available now, in the just released gdb-7.0.
Debug any native Linux process in reverse, on x86 and
x86_64 architectures. Reverse-continue, reverse-step,
reverse-next, and so on. It's pretty fast, too!
* Python scripting support
* Reverse debugging, Process record and replay
* Non-stop debugging
* Multi-architecture debugging
* Multi-inferior, multi-process debugging
It also features many enhancements and bug fixes, including:
* GDB now has an interface for JIT compilation
* Tracepoints may now be conditional
* Multi-byte and wide character set support
* New /r and /m modifiers for the "disassemble" command
* Automatic retrieval of shared library files from remote targets
* Inlined functions are now supported
* New remote protocal packets
* GDB is now able to read compressed debug sections
* Thread switching is now supported on Tru64
* Ada task switching is now supported
* New features in gdbserver, the GDB remote stub
* New command to stop execution when a system call is made
I'd be really interested to know a bit more about some of these. Anybody know what "non-stop" or "multi-inferior" debugging are? And what sort of benefit is gained from using multi-process debugging rather than having a separate gdb attached to each process?
"non-stop" means that some or all of the threads in the process may be running while gdb is prompting the user for the next command. So for instance you may have one thread stop at a breakpoint, but the rest keep running.
"Multi-inferior" means you can be debugging several different processes at once. I didn't work on this one personally so I can't say much about the benefits. But the work was paid for by a contractee, so obviously somebody thinks it is better. ;-0
as other posters on this thread have mentioned, i think it really depends on the community you belong to ... many GNU open-source hackers swear by C and won't touch managed code with a ten-foot-long stick because of their associations with Sun (Java) and MSFT (.NET) ... whereas if you're writing enterprise applications in a big company, your entire firm is probably on .NET and would scoff at those unix hippies still using command-line gdb :) joelonsoftware has an article entitled Biculturalism that addresses this issue:
23 comments
[ 5.2 ms ] story [ 62.5 ms ] threadhttp://www.sourceware.org/gdb/wiki/ProcessRecord/Tutorial
Anyway, sounds like an awesomely good release.
"Multi-inferior" means you can be debugging several different processes at once. I didn't work on this one personally so I can't say much about the benefits. But the work was paid for by a contractee, so obviously somebody thinks it is better. ;-0
http://www.joelonsoftware.com/articles/Biculturalism.html