See What's new in CDT 8.1 on the CDT Wiki which may contain more recent information.
The Call Hierarchy View can now be pinned which enables the user to open multiple Call Hierarchy views at the same time.
This feature was completed November 12th, 2011 as part of Bug 342498
There are a few additional filtering options added to Project Explorer and Outline View:
Mouse hover for auto keyword shows deduced type:
The main motivation for integrating Codan with external tools is to enjoy all the code checks from mature tools without leaving Eclipse. With the new infrastructure:
The new infrastructure includes a sample checker that invokes Cppcheck.
A more detailed configuration dialog can be found by pressing the 'Customize Selected' button:
Users can specify the path of the Cppcheck executable and the arguments to pass to Cppcheck.
A demo of this checker can be found here.
The new infrastructure makes it very easy to write your own external-tool-based checker. In the simplest case, you will need to:
Please take a look at the source code of CppcheckChecker for details.
In the case of tools that are complex to set up, the new infrastructure is extremely flexible and configurable. It allows you to pretty much to configure every single aspect of the checker, from the files that the tool can check to the way to feed arguments to the tool.
struct Demo { Demo() {} // Warning: Member 'field' was not initialized in this constructor int field; };
Scanner Discovery has been reworked in this release. The main purpose of Scanner Discovery was always to supply Include Paths and Macros for indexer and build. Now these are supplied by Language Settings Providers. See more at Scanner Discovery Wiki
The new scanner discovery makes it possible to discover and use with indexer Mac OSX Frameworks folders, see bug 69529
Build console marks more prominently start and end of build and reports elapsed time:
Parallel Build was remodelled, see bug 259768:
A few additional options to select from added to managed build, bug 365461.
CDT now optionally includes a Multicore Visualizer View. This view displays a graphical representation of the state of the current application. It allows one to click- and drag-select groups of processes/threads, and apply debugging commands to them directly from the visualizer. Selections made in the Visualizer View are reflected automatically in the Debug View, and vice versa. The Multicore Visualizer View is designed to scale to large numbers of cpus and cores-per-cpu on both current and future multicore hardware.
The Multicore Visualizer View is meant to serve as a high-level visual overview of the current application, and can be used in tandem with the Debug View, which provides more in-depth detail.
The Multicore Visualizer View is just one example of a visualizer based on the underlying Visualizer Framework plugin. This provides a pluggable, extensible platform for developing visual development tools of this kind.
Note that the Multicore Visualizer will only work using a Linux target; it will not work debugging on a Windows or Mac target. This is a current limitation of GDB which does not provide information about cores, for those targets (at writing, GDB is at version 7.4).
This feature was completed on February 10th, 2012. For details see Bug 335027
The Multicore Visualizer is an optional feature of the CDT and must be installed manually. The feature is called "C/C++ Multicore Visualizer". Installing it will install both the Multicore Visualizer and the Visualizer Framework. If you only want to install the Visualizer Framework (to build your own visualizer), you can install that feature by itself; it is called "CDT Visualizer Framework". Once the features are installed, you can access the Multicore Visualizer (or any other visualizer) by opening the view called "Visualizer".
CDT now displays large arrays as collections of partitions.
This feature was completed on January 26th, 2012 as part of Bug 365541
It is no longer necessary to first create a CDT breakpoint, then edit its properties. Properties such as enabled, ignore count, condition, temporary, can be set while creating the breakpoint.
There are several methods to open the properties dialog before creating the breakpoint:
Image: The breakpoint properties dialog for a line breakpoint about to be created.
The Toggle Breakpoint action in the editor and disassembly view menu now supports new behaviors when used with modifier keys:
Image:The editor gutter popup menu with the hints for the new accelerators.
There is a new option for creating a function breakpoint:
CDT now supports the handling of different character encodings for strings and wide character strings while debugging. This includes full support for Unicode encodings and many other popular encodings as well. You can select the character and wide character encoding within the Debug preferences.
CDT will then correctly display strings according to the selected encoding while debugging.
Note that this feature requires GDB version 7.0 or later. This feature was completed on March 7th, 2012 as part of Bug 307311, Bug 367456 and Bug 370462.
Timeouts for GDB commands are now supported in DSF/GDB. The feature is optional and disabled by default. The timeout values are configurable. When the feature is enabled, custom values can be assigned to some commands, all other commands use the default value. This feature was completed on April 17th, 2012 as part of Bug 361934.
CDT now allows to perform a Resume or Suspend operation on multiple selections of the same debug session. Because such a concept only adds value in a Non-Stop debug session, it is only supported in such a session (see Non-Stop Debugging). The behavior of a multi-selection Resume/Suspend is as follows:
As hinted above, CDT takes a permissive approach to multi-select resume/suspend. This means that if a multi-selection includes both stopped and running threads, a resume operation is still allowed, and only the suspended threads will be resumed; similarly, on such a multi-selection, a suspend operation is allowed, and only the running threads will be suspended.
Example
In the above screenshot if the user were to press the Resume button with the current multi-selection the following would happen:
This feature was completed April 25th, 2012 as part of Bug 330974
CDT now has an global preference that allows to only show the suspended threads within the Debug view. When dealing with a large number of threads, a user is typically interested by the threads that are being inspected (suspended ones) and does not care about the running ones. Using this preference, all running threads will not be shown in the Debug view. Note that when a thread is stepping it will remain visible, although it is technically running. The process element of the Debug view will show how many threads are currently being filtered from view.
The below example shows the exact same debugging session. The first screenshot only shows suspended threads, while the second shows all threads.
Below shows how to access the preference, which is disabled by default.
This feature was completed May 4th, 2012 as part of Bug 375585
CDT now allows selecting more than one process to attach to in a single user operation. The bottom pane is used to see which processes have been selected. If multi-process debugging is not supported with your debug session (needs GDB >= 7.2 and NonStop enabled), only the first process will be attached to.
This feature was completed June 30th, 2011 as part of Bug 293679
CDT now allows the user to specify a default directory for the location of core files for a postmortem launch when the prompt is triggered. Since a postmortem launch can easily be re-used for different core files of the same binary, this feature helps reduce the amount of navigation needed to select a core file. Note that specifying the actual core file is still supported, as well as leaving the entire field blank, which will also trigger the prompt, but use the default directory for its starting location.
Note that this 'core file' field supports the use of variables such as ${workspace_loc}.
This feature applies to both core files and trace files.
This feature was completed on February 17th, 2012 as part of Bug 362039
CDT now allows the user of fast tracepoints, as supported by GDB. Fast tracepoints use an instruction jump instead of a trap for efficiency. Fast tracepoint need a minimum of space to be inserted in the program and therefore, may fail to be set at certain locations. For fast tracepoints to work, a special library called the in-process agent (IPA), must be loaded in the inferior process. This library is built and distributed as an integral part of gdbserver. Please see the GDB documentation for more details.
The user can select between three tracepoint modes in the launch:
This feature was completed July 20th, 2011 as part of Bug 346320
With the use of GDB 7.4, some new features are available within Eclipse.
With GDB 7.5 or higher CDT could show the actual variable type (not the declared one) in Variables and Expressions Views. Consider the following example:
struct SuperInterface { virtual ~SuperInterface() {} // enable RTTI for Interface class }; struct TheImplementation : public SuperInterface { TheImplementation(int _v1, float _v2) : someField(_v1), anotherField(_v2) {} int someField; float anotherField; }; int main() { SuperInterface* i = new TheImplementation(42, 4.2); return 0; // [Launch debug until here] }
Launch the debugging session and run until return statement:
This feature is enabled by default and will work if you have the proper GDB version (7.5 or higher) and RTTI generation enabled (enabled by default in gcc), however it could be turned off in preferences:
This feature was completed on May 5th, 2012 as part of Bug 376901 and Bug 377536.
There are also a few new CDT-specific build variables:
This feature was completed on April 2nd, 2012 as part of Bug 180256 and Bug 375814.
CDI now also supports to use the octal number format to display the contents of variables, expressions and registers. You can select the octal number format within the Debug preferences. This feature was completed on March 7th, 2012 as part of Bug 370462.
Supported features:
The HOWTO, known problems and limitation can be found in the corresponding section of CDT FAQ.
This feature was completed April 18th, 2012 as part of Bug 210366.
Bugzilla tasks completed for this release: CDT 8.1 bug fixes
To learn what's new in other CDT releases see: