Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDT/User/NewIn80

< CDT
Revision as of 12:14, 19 October 2010 by Angvoz.dev.gmail.com (Talk | contribs) (Console)

Build

Console

  • The "C-Build console" is now named "CDT Build Console"
  • It is now possible to open the CDT Build Console before performing a build. See bug 320765. Note that operations on the console will require the user to first select a project. The below screenshot shows the new access to the CDT Build Console.

CDTConsoleStart.jpg

  • "CDT Global Build Console" got introduced. This console combines output from all referenced projects being built in one view.
CDTGlobalBuildConsole.jpg
  • Differentiate color highlighting in build output for error, warning and info problem markers. See bug 307211.

Bug 307211.png

Scanner Discovery

  • It is possible now to clear old built-in include paths and symbols left after compiler upgrade in Paths&Symbols in project properties. The "Clean" button was introduced on "Scanner Discovery" page. See bug 206372.

Debug

DSF-GDB

Support for pending breakpoints

When a breakpoint is set in a dynamically-linked library that was not loaded yet, the breakpoint will now work, once the library is loaded. See bug 248595. This feature is currently only supported when using GDB 6.8 or later.

Showing cores in Debug view labels

By using the enhancements of GDB 7.1, DSF-GDB now shows the core on which each thread runs as an extra part of the Debug View label. The list of all cores on which a process is located is also added as a label. The below image shows the new feature.

CoreLabels.png

This feature has been implemented for CDT 8.0 as of July 6th, 2010, as part of Bug 318230. The feature will be enabled automatically as long as GDB 7.1 or greater is used.

Showing cores and owner in attach prompter

DSF-GDB now shows the core on which a process is located as well as its owner as an extra part of the process prompt for an attach session. The owner id will be shown starting with GDB 7.0, while the cores will be shown starting with GDB 7.1. The below image shows the new feature.

UserAndCores.jpg

This feature has been implemented for CDT 8.0 as of July 30th, 2010, as part of Bug 318230 comment 21. The feature will be enabled automatically as long as the proper version of GDB is used.

C/C++ Remote Application launch

The optional "C/C++ Remote Application" launch configuration type has been made permanent for CDT.

Debugconfig.jpg

The "GDB (DSF) Remote System Process" launch delegate has been renamed to "GDB (DSF) Manual Remote Debugging" and has been moved from "C/C++ Application" to "C/C++ Remote Application". As was the case for CDT 7.0, the optional RSE Remote Launch delegate of org.eclipse.cdt.launch.remote, is still part of "C/C++ Remote Application".

This optional remote launch now provides a new DSF-GDB-based launch delegate called "GDB (DSF) Automatic Remote Debugging". This launch is very similar to the existing "GDB (DSF) Manual Remote Debugging" delegate, except that the automatic one will automatically download the application to the remote target and start gdbserver with the application.

RemoteDelegates.jpg

By default, the user will be shown the "GDB (DSF) Manual Remote Debugging". However, if the optional feature of Remote Launch is installed, the default will automatically become the more feature-rich "GDB (DSF) Automatic Remote Debugging".

Finally, the run-mode RSE Remote Launch delegate no longer shows the Debugger or Source tabs, since they were not relevant, in run-mode.

Editor

Override markers

In C++ files, method declarations and definitions are annotated on the vertical bar using three types of symbols:

  • Override (green triangle) indicating that a virtual method in one of base classes is overridden,
  • Implement (empty blue triangle) indicating that a pure virtual (abstract) method in one of base classes is overridden,
  • Shadow (dark blue triangle) indicating that a method in one of base classes with the same paremeter set is shadowed.

CDTOverrideMarkers.png

As in JDT, the annotations have the action which allows to go to the declaration in base.

In case of multiple inheritance, the messages also contain the name of direct base class of the overriding method's class if the overrided method's class is further up the inheritance hierarchy.

Contrary to JDT, several messages are sometimes generated on one marker (e.g. when the same method is overridden through several base classes).

Selection expansion

The C++ editor now allows to expand the selection to enclosing, next and previous nodes of the AST, as well as restore the hierarchy.

CDTExpandSelection.png

The behaviour is strictly analogous to JDT and the actions are located in "Edit -> Expand Selection To" menu.

Codan

Problem binding checker

Codan now has a checker which generates Problems on instances of ProblemBindings in AST, generated by the Indexer. This allows to reveal many errors while typing.

Quick fixes are provided for a subset of problems. As for now, the available fixes are:

  • Name resolution problem:
    • Create Local Variable
    • Create Field
    • Create Parameter

CDTNameResolutionFix.png

API changes and migration to CDT 8.0

The changes affecting compatibility are listed here. Keep in mind that this list likely does not list all the issues, only some of them.


General

  1. Deprecated class org.eclipse.core.runtime.PluginVersionIdentifier has been changed to use org.osgi.framework.Version. See bug 318581
    • Affected packages: org.eclipse.cdt.managedbuilder.*.

DSF-GDB

  1. The interface org.eclipse.cdt.dsf.mi.service.command.output.MIListThreadGroupsInfo.IThreadGroupInfo has four new methods. See bug 318230 comment 21
    • String getUser()
    • String getType()
    • String getCores()
    • String getExecutable()
  2. The interface org.eclipse.cdt.dsf.gdb.service.command.IGDBControl has a new method: List<String> getFeatures(). See bug 322658
  3. All the constructors of class org.eclipse.cdt.dsf.mi.service.command.commands.MIBreakInsert now take an extra parameter at the end of the parameter list: boolean allowPending. When this parameter is set to true, -break-insert will be used with the -f option, which asks GDB to make the breakpoint pending if the installation fails. This flag can only be enabled for GDB >= 6.8. See bug 248595
  4. The interface org.eclipse.cdt.dsf.debug.service.IProcesses.IMIProcesses has a new method: IMIContainerDMContext createContainerContextFromGroupId(...). See bug 317500

Back to the top