Multi-core debugging features that have already been implemented
Debugging without the Debug view (Breadcrumb)
As of Eclipse 3.6 (Helios), a debug Breadcrumb has been implemented to dramatically reduce the size of the Debug View. The user can simply manually shrink the Debug View to a single line, and the Breadcrumb will automatically be activated. For details, see user documentation for Debug View and Bug 252677.
Showing cores in Debug view labels
By using the enhancements of GDB 7.1, we can show the core on which each thread runs as an extra part of the Debug View label. We can do the same for processes. The below image shows this.
This feature has been implemented for CDT 8.0 as part of Bug 318230
CDT now supports debugging multiple processes in a single debug session. It allows to attach/detach and start/stop processes repeatedly and easily.
- GDB 7.2 or greater
- Currently, only Non-Stop debugging sessions support multiple processes.
- Note that this feature was developed and tested on Linux systems, and may not work on Windows.
To use multi-process debugging, simply launch an application as you normally would, locally or remotely, using gdbserver, and make sure to select Non-stop mode in the Debugger tab. Then, use the Debug View's "Connect" button to trigger a dialog with allows you to either attach to a running process, or to create a new process using the "New..." button. Currently, the "New..." button is only supported for Local debug sessions.
You will then have the newly selected process added to your debug session, where you can control it and examine it. You can use the "Disconnect" button to remove processes from your debug session, or you can use the "Connect" button to add new ones.
An option to automatically attach to a forked process is also available. This means that whenever any process you are currently debugging forks a new process, that new process will be added to your debug session.
Pin & Clone
The Variables, Expressions, Registers, Disassembly, and Memory Browser now supports opening multiple instances of the views, as well as pinning the view input to the selected debug context(s) of the Debug view.
The original design page can be found here.