Greetings to the DDD community.
I have taken over the maintainership of DDD.
At the moment, my own efforts are directed towards completing Peter Wainwright's work on developing a new GTK interface to replace the vulnerable Motif front end of DDD.
We wish to separate the GUI from the main program logic, so that development of DDD can proceed without requiring simultaneous updates to N separate platform-specific implementations. In order to do this we will introduce a “shim” or “wrapper” which will connect DDD to the underlying GUI toolkit. In order to implement DDD using another toolkit, the only necessary modification is the creation of a new wrapper. Modifications to the DDD core logic will automatically affect all implementations.
Apart from this I will be working on few other tasks.
Many applications now consist of a number of interacting processes running the same or different programs. The most extreme example might be HPC applications using MPI on large clusters. But even desktop applications often use two or more processes communicating over a network socket.
It would be very cool and useful to have a decent framework for debugging these.
GDB 7.0 has basic support for multi-process inferior control, implemented in the remote target, but it can only be used to debug systems that share code across all inferiors.
GDB 7.1 extends that by providing support for multi-process and multi-executable debugging for linux systems (native and remote) as well. This means being able to load several programs under a single GDB session; "run" or "attach" to several processes under a single GDB session, each possibly running a different program; or following all the forks and execs of an inferior and its children tree.
GDB 7.2 adds support for multi-executable control to the machine interface (MI).
We might start a separate GDB inferior for each process and manage the multi-process stuff in DDD.
DDD should use GDB/MI2 interface.
Modern GDB has an alternative interface (MI/MI2) which is designed for use with front-end debuggers.
Using this would avoid the difficulties involved in parsing output which is really designed for clever humans.
The present interface to the inferior debuggers involves multiple switch
statements (case BASH, case DBX, case GDB...) scattered through the
code. It would be helpful to have a more modular approach to this so
that we could add new languages more easily.
Adding support for new gdb features like reversible debugging.
There are still bugs in DDD, so bug-fixing should continue.
Various enhancements to DDD have been implemented since the last release and many patches got submitted. To consolidate these, a new release is needed. I am planning to make few 3.3.13-testx releases, before the big 3.3.13. I shall be looking into this in the next few months...