Jump to: navigation, search




CDT 8.7 will be released on June 24th, 2015 as part of the Eclipse Mars release. It requires platform 4.5 (or newer).

Docker support

The latest CDT now has an optional feature to allow running and debugging C/C++ applications in Docker Containers. Simply use the Run as C/C++ Container Application or Debug as C/C++ Container Application menu items.


Debugging uses gdbserver so it must be pre-installed in the Image used by the Container.


Project-less Execution

For a while now CDT has supported debugging a program that was not part of a project. With CDT 8.7, the same can be done when Running a program. What this means is that the user can specify any C/C++ program on the file system in a Run configuration and CDT will execute it.

CDT ProjectLessRun.png

This feature was completed through Bug 464078.

Process exit code shown in execution console title

When a process completes execution normally, its exit code is shown in the title of that process's console. This was provided by CDT since version 8.2 but only for the Debug case. It is now supported for the Run case.

CDT Debug ExitCode.png

This feature was completed through Bug 463975.

Development setup using Eclipse Installer (Oomph)

CDT development can now be setup using the Eclipse Installer (Oomph). We hope this lowers the barrier-to-entry and stimulates the growth of our community. You can find instructions on how to do this in the Getting started page

Import Existing Autotools Project

A wizard has been created for importing an existing Autotools project on a user's system into a CDT C/C++ Autotools project. The wizard can be found using File->Import... under the C/C++ category.




Options for Format with Empty Selection

The Format command (Ctrl+Shift+F) in C/C++ editor can now be configured to format either the whole file or the current statement when no code is selected.

C Editor Preference Page.png

If Ask for confirmation is checked, the command will display a dialog asking user what to do:

Select Formatting Scope Dialog.png


Alignment specifiers

The parser now supports alignment specifiers ('alignas' in C++ and '_Alignas' in C):

CDT Alignas.png



Debugging a process in a Docker container

The latest CDT now has an optional feature to allow debugging C/C++ applications in Docker Containers. Please see the above section for more details.

Exited processes shown in the debug view

When debugging multiple processes, when a process would exit on its own, it would simply disappear from the debug view. This was not very user friendly. With this release, CDT will keep displaying an exited process in the debug view and will include its exit code.

CDT ExitedProcesses.png

To remove entries for exited processes, the user can select one or more of them and then press the Terminate or Disconnect button. The number of exited processes shown is limited by CDT to avoid filling the view with such entries.

CDT ExitedProcessesRemove.png

Another benefit in showing an exited process is that it can be restarted with the Restart context-menu command.

CDT ExitedProcessRestart.png

This feature can also be interesting for single process debugging when un-selecting the preference to kill GDB after the process exits (Preferences -> C/C++ -> Debug -> GDB -> Terminate GDB when last process exits). In this context, the exited process will also be shown to the user and can also be restarted.

This feature was completed through Bug 407340.

Menu to add Expression Group

To facilitate the use of Expression Groups (or Enhanced Expressions) CDT now provides an entry in the Expressions view menu. This shortcut allows users to use the menu to create an Expression Group for all registers or one for all variables. Users can of course create those groups or any other by typing directly in the Expression view "Add new expression" box.

For more information about Expression Groups, please refer to the Enhance Expressions FAQ page.

CDT ExpressionGroupMenu.png

Multicore Visualizer

Add persistent information storage

The Multicore Visualizer was enhanced to permit easy persistence of information. The information is saved in the workspace, and can be global for any instance of the view or saved per view.

As part of this change, the state of the load meters is now preserved, per MV view instance.

This feature was completed through Bug 460837.

Make showing debug actions in toolbar configurable

The presence of Debug actions (Resume, Suspend, Step-into, etc) in the Multicore Visualizer toolbar has been previously discussed. Those buttons are "clones" of the platform debug buttons, already present in the main toolbar and optionally in the Debug View toolbar.

By default, the Debug actions are displayed in each MV view toolbar, but can be hidden, using the toggle action from the view menu:

MV-show debug actions in toolbar2.1.png

Debug actions hidden:

MV-show debug actions in toolbar3.png

The user's choice is preserved, per MV view, in the current workspace.

This feature was completed through Bug 460476.

Simplified extensibility for CDT's debug views

For extenders of CDT's debugger (DSF-GDB), we have made it easier to override the behaviour of the debug views. This is made possible by allowing to extend GdbAdapterFactory.java and the new GdbSessionAdapters.java. An example of this can be seen in org.eclipse.cdt.examples.dsf.gdb.

This improvement was completed through Bug 462623.

C/C++ Stand-alone Debugger as separate package (RCP)

The C/C++ Stand-alone Debugger is now available in the form of a separate, lightweight download in addition to being also part of the complete Eclipse IDE for C/C++ Developers package. Once extracted, it can be started by simply launching the cdtdebug executable. This new package can be downloaded from the CDT downloads page.

Launch Bar

While not strictly a CDT feature, it was developed with C/C++ developers in mind. The ideas is to help users avoid having to go to complex launch configuration dialogs to create their launch configurations, especially in situations where many of the settings can be automatically determined. It also makes it explicit what a launch will do by showing the launch mode, an object that will be launched, and a target that it will launch on.

More documentation will be made available in Doug Schaefer's blog and transitioned to the CDT wiki and eventually into the help documentation.

Arduino C++ Support

We begin our journey providing a good out of the box experience for hobbyist computer engineers using accessible low cost hardware platforms for their electronics projects. The first one we're introducing is the Arduino C++ support that will use the toolchains and SDKs and libraries from the standard Arduino IDE and let developers create C++ projects that use them.

More documentation will be made available in Doug Schaefer's blog and transitioned to the CDT wiki and eventually into the help documentation.

Bugs Fixed in this Release

See Bugzilla report Bugs Fixed in CDT 8.7