Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

CDT/User/NewIn90

< CDT

Release

  • This is the New & Noteworthy page for CDT 9.0 which is part of the Eclipse Neon release of June 2016

General

  • Is is now possible to convert an existing C project to a C++ project (adds C++ nature). To do this, the existing wizard 'Convert to a C/C++ project' can now be used on C projects whereas before it could only be used on non-CDT projects.

Editor

Create New Class - Quick Fix

In C++ files if "Type not found" error is detected, there is a new quick fix now to create a class based on that type, which opens "New C++ Class Wizard". Note: to enable quick user must enable "Type cannot be resolved" problem in "Code Analysis" settings

CPPnewClass.png

This feature was completed through Bug 411579

Format Edited Lines - Save Action

It is now possible to format either the whole file or only the edited lines when a source or a header file is saved.

Save Actions.png

Makefile Editor

  • Makefile Editor now provides a *single* key Ctrl+/ to toggle comments rather than have Ctrl+/ to comment and Ctrl+\ to uncomment. This is consistent with CDT and Java editors. See Bug-485028

Code Analysis

Suppressions in code

It is now possible to suppress code analysis errors/warnings by adding comments in the code.

 x = x; // @suppress("statement has no effect") because I know better

The comment is actually configurable using problem parameters (@suppress(<title>) is default), you could have named it "--ignore--" and it would have been like

 x = x;  // --ignore--

This feature was completed through Bug 383576

Parser

Build

  • The "Symbols" settings category (gnu.c.compiler.category.symbols) under "GCC C compiler" has been removed and its content has been merged with the Preprocessor (gnu.c.compiler.category.preprocessor) category. link

Debug

Gdbserver options

  • For automatic remote debugging sessions, CDT now supports specifying extra options that will be passed to gdbserver when starting it. This way, users could activate debug messages ("--debug"), benefit of wrapper option ("--wrapper") that gdbserver supports or use the other available command-line options of gdbserver.

Gdbserver-settings-tab.PNG

OS Resources View

Attach to selected processes

OS Resources view displays different information about the resources of the operating system, such as list of all processes running on the target or files opened by processes on target.

Now it is possible to attach to processes associated with selected resources directly from OS Resources view without resorting to "Connect to a process" button from Debug View.

OS Resources Attach.JPG

This feature requires non-stop mode support to be activated.

This feature was completed through Bug 486521.

Copy to clipboard

OS Resources View lists a lot of text information. Now it is possible to copy selected lines to clipboard to save for later comparison.

Connect button removed from Debug toolbar

In an effort to reduce clutter, the Connect button was removed from the Debug toolbar. The action is still available from the Debug view context-menu as shown below. Furthermore, connecting to a process can now be done using the OS Resources view as described in this section.

CDT Removed Connect Button.png

This feature was completed through Bug 487121

Button to create a new process removed from Connect dialogue

To streamline the UI, the "New..." button of the Connect dialogue which was used to create a new process has been removed. This action is available instead from the Debug view context-menu as shown below.

CDT RemoveNewButton.png

This feature was completed through Bug 488950

"Go to Address" platform action added to the Traditional Rendering context menu

Some of the other memory renderings already had this action, and it seemed that the traditional rendering could use it too.

CDTGoToAddressActionTraditionalRender.png

This feature was completed through Bug 488950


Connecting to process(es) - errors are now being propagated to the user

When connecting (attaching) to one or more processes, if one or more failed, the failure would be silent. With this enhancement in place, any errors will be collected and presented to the user, in a single dialog. For example here, errors are being reported for 3 failed connections:

ConnectToProcess-ErrorsPropagetedToUser.png

This feature was completed through Bug 487128

Breakpoint Actions: Debugger Commands

New breakpoint action added - debugger command. Now when breakpoint is hit you can execute arbitrary debugger command supported by command line debugger interface (including "continue"). This is currently not intended for sophisticated scripts, since all data stored in workspace and you cannot share it, however you can create a script, save it in a file and command you executing when breakpoint hit will be the command to execute the script. Note that in this case IDE may get out of sync if you using stepping commands inside the script.

DebugCommand-New.png

This feature was completed through Bug 489455


Disassembly View Hover now interprets registers

Hover has been implemented in the Disassembly View, for registers. Previously, any String being hovered would be interpreted as a gdb expression. Depending on the assembly syntax, it might resolve as a register on some platforms, but not on others. Now there is an attempt to interpret what is being hovered as a register first, and if it does not resolve then as an expression.

Cdt-disassembly-register-hover.png

This feature was completed through Bug 489278

Traditional Render for memory views - support background color per memory space

In the Memory and Memory Browser views, one can use the CDT Traditional Render. In that render, a preference is defined to define the view's background color. This enhancement permits to define the background color independently for each memory space, for systems that support those. This makes it very easy to know, with one look, which memory space we are looking-at.

A few sane default colors have been defined, for the eventual first few memory spaces present on a system. The user can customize those colors, or disable this feature by checking the "Use Global Background Color" checkbox:

Cdt-traditional-render-prefs-mem-space-background-color.png

This feature was completed through Bug 488469

Improved Source Lookup Path Mapping

The source lookup feature for path mappings has been reworked in this release to improve support for relocated projects, cross-platform support, dealing with non-canonical paths (paths containing '..') and fixing source lookup bugs. The new implementation uses the GDB feature "substitute-path" to allow the debugger backend to directly perform the mapping of the source path to the actual location. The new debugger backend implementation is enabled by default, but the user has the option to disable the functionality on a case-by-case basis if needed. As a result CDT now offers better support for finding source files for relocated projects on all platforms, including MinGW and Cygwin on Windows.

Source-mapping.png

This feature was completed through Bug 472765 Read more about the improved source lookup path mapping in this blogpost.

Support for Hardware Reverse Debugging

Earlier only software based Reverse Debugging could be selected from CDT. Now hardware based reverse debugging methods can be enabled from the GUI. Of course this requires support from underlying hardware, debugger and kernel. When available, hardware reverse debugging is dramatically faster than the software version. However it is less detailed (variables are usually not available). A list of reverse debugging methods have been added to the Toggle Reverse Debugging button as shown below

Toolbar.jpg

To enable a specific method, it needs to be selected from the list. The Toggle Reverse Debugging button can then be used to toggle the chosen Reverse Debugging method. The selection can also be made in the Launch Configuration dialog:

Launcher.jpg

The specific hardware technology to use for Hardware reverse debugging can be chosen from the preference menu.

Preference.jpg

Support for "Stop at startup" options in "Debug New Executable" dialog

This feature allows users to specify the "Stop at startup" options when adding a new executable to a running debug session.

StopAtStartup.png

Support for Hovering in the traditional memory render

The hovering box displays the memory address corresponding to the hovering location

TraditionalRenderHovering.png

This feature was completed through Bug 489505

Show local Variables and Registers in the traditional memory render

It is now possible to visualize local variables and registers when using the traditional memory render, this render is available in the Memory browser view as well as in the Memory view.

NOTE: Registers are shown when it's value corresponds to a memory address being visualized, currently CDT has no knowledge of the purpose of the actual registers in the target systems.

The following picture shows how to locate a local variable in the stack

Variables.png

The following picture shows how a pointer local variable is presented in the data pane when is dereferenced

PointerVars.png

Using an expression in the memory browser view to find the location of the stack and visualize local variables and registers

StackPointerExpr.png

Hovering over a start address where a variable and a register are pointing to

HoveringOverStartAddressWithInfo.png

It is possible to disable the presentation of variables and/or registers via the context menu, this apply individually to each traditional render instance

TraditionalRenderContextCrossRef.png

It is possible to disable the presentation of all memory cross reference information for all traditional renders and be preserved via the Traditional Memory Rendering Preferences "Show cross reference information"

ShowCrossReferenceInformation.png

This feature was completed through Bug 489512, Bug 489513, Bug 489516

Removal of support for the old Apple GDB

Apple used to have their own version of GDB which was released with Xcode. Apple no longer releases their own GDB version, and that since 2013. As of CDT 9.0, the support for the obsolete Apple GDB has been removed. As an alternative, the GDB from the FSF (Free Software Foundation) can be used. Some instructions on how to do this are available on the CDT FAQ page.

Bugs Fixed in this Release

See Bugzilla report Bugs Fixed in CDT 9.0

API modifications

In CDT 9.0 the classic CDI (C Debugger Interface) has been removed after previously being deprecated, see https://bugs.eclipse.org/484900. The only debugger implementation in CDT is now DSF. If you are still using CDI...

  1. Migrate to DSF -- more powerful, asynchronous debug framework
  2. Consider maintaining your own fork of CDI -- It's all open source.

In addition, with CDT 9.0, some public API are being modified. Several deprecated public methods, constants, interfaces and classes were changed to become internal APIs. These deprecated APIs are intended for removal in subsequent CDT releases.

Below is the list of changes that are not backwards-compatible that extenders could trip on.


org.eclipse.cdt.core

  1. The deprecated methods ICPPTemplateInstance.getArguments() and ICPPClassTemplatePartialSpecialization.getArguments() were removed. ICPPTemplateInstance.getTemplateArguments() and ICPPClassTemplatePartialSpecialization.getTemplateArguments() should be used instead.
  2. The deprecated method ICPPSpecialization.getArgumentMap() was removed. ICPPSpecialization.getTemplateParameterMap() should be used instead.
  3. The deprecated method ICPPTemplateScope.getTemplateDefinition() was removed. ICPPTemplateScope.getTemplateDeclaration() should be used instead.
  4. The deprecated method INodeFactory.newTranslationUnit() was removed. INodeFactory.newTranslationUnit(IScanner) should be used instead.
  5. The deprecated method IASTFunctionCallExpression.setParameterExpression(IASTExpression expression) was removed. IASTFunctionCallExpression.setArguments(IASTInitializerClause[]) should be used instead.
  6. The deprecated method IASTFunctionCallExpression.getParameterExpression() was removed. IASTFunctionCallExpression.getArguments() should be used instead.
  7. The deprecated constant IASTFunctionCallExpression.PARAMETERS was removed. IASTFunctionCallExpression.ARGUMENT should be used instead.
  8. The deprecated interface IASTBuiltinSymbolProvider was removed. IBuiltinBindingsProvider should be used instead.
  9. The deprecated methods ASTVisitor.visit(IASTComment) and ASTVisitor.leave(IASTComment) were removed. IASTTranslationUnit.getComments() should be used instead.
  10. The deprecated method ICPPNodeFactory.newSimpleTypeConstructorExpression(int, IASTExpression) was removed. ICPPNodeFactory.newSimpleTypeConstructorExpression(ICPPASTDeclSpecifier, IASTInitializer) should be used instead.
  11. The deprecated method ICPPNodeFactory.newSimpleDeclSpecifierGPP() was removed. ICPPNodeFactory.newSimpleDeclSpecifier() should be used instead.
  12. The deprecated method ICPPNodeFactory.newPointerToMemberGPP(IASTName) was removed. ICPPNodeFactory.newPointerToMember(IASTName) should be used instead.
  13. The deprecated method ICPPNodeFactory.newPointerGPP() was removed. INodeFactory.newPointer() should be used instead.
  14. The deprecated method ICPPNodeFactory.newExplicitTemplateInstantiationGPP(IASTDeclaration) was removed. ICPPNodeFactory.newExplicitTemplateInstantiation(IASTDeclaration) should be used instead.
  15. The deprecated method ICPPNodeFactory.newConstructorChainInitializer(IASTName, IASTExpression) was removed. ICPPNodeFactory.newConstructorChainInitializer(IASTName, IASTInitializer) should be used instead.
  16. The deprecated method ICPPBase.getBaseClassSpecifierName() was removed. A base class may be specified without the use of a name.
  17. The deprecated constant IASTBinaryExpression.op_last was removed. It was never safe to use.
  18. The deprecated method ICPPASTQualifiedName.getNames() was removed. ICPPASTQualifiedName.getQualifier() and ICPPASTQualifiedName.getLastName() should be used instead.


org.eclipse.cdt.codan.core

https://git.eclipse.org/r/#/c/63810/

  1. Method IChecker.enabledInContext(IResource resource) was removed. Just remove the implementation since the method is not called.
  2. Method IProblemLocationFactory.createProblemLocation(IFile file, int startChar, int endChar) was removed. If you implement this interface, remove @Override annotation, if you use this method, replace with createProblemLocation(file, startChar, endChar, -1) (or appropriate line number, note: passing -1 is OK since it will recalculate the line from positions)
  3. Constructor CodanProblemLocation(IResource, int, int) was removed, use CodanProblemLocation(IResource file, int startChar, int endChar, int line) instead.


org.eclipse.cdt.dsf.gdb

  1. Thread ids used to be integers. However, due to recent changes, we expect GDB to possibly provide non-integer ids in some cases (e.g., thread 2.3 (thread 3 of process 2). Multiple methods were change to accept strings instead of int for thread ids. Adapting to these changes is straightforward.
    1. You should look out for the following:
      1. Obviously compiler errors that ask for a String instead of an int or Integer
      2. Look for the use of == when using thread ids. Those should be replaced with String#equals().
      3. Integer.valueOf(threadId) accepts both the type int and String, so the compiler will not show an error when the parameter threadId becomes a string. You may want to review such cases.
    2. The list of actual changes follows:
      1. The interface method IMIExecutionDMContext#getThreadId() which use to return an int now returns a string
      2. The method MIThreadListIdsInfo#getThreadIds() has been removed. MIThreadListIdsInfo#getStrThreadIds() should be used instead.
      3. The method MIRunControl#createMIExecutionContext(IContainerDMContext, int threadId) has been replaced with MIRunControl#createMIExecutionContext(IContainerDMContext, String threadId)
      4. The method GDBRunControl#createMIExecutionContext(IContainerDMContext, int threadId) has been replaced with GDBRunControl#createMIExecutionContext(IContainerDMContext, String threadId)
      5. The constructor MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, int tid, boolean) has been replace with MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, String tid, boolean)
      6. The constructor MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, int tid, boolean, boolean, boolean) has been replace with MIBreakInsert(IBreakpointsTargetDMContext, boolean, boolean, String, int, String, String tid, boolean, boolean, boolean)
      7. The thow methods corresponding to the above changed constructors have also been changed in CommandFactory.java and CommandFactory_6_8.javato accept a String parameter for the thread id
      8. The method CLIThreadInfo#getCurrentThread() which used to return an int now returns a String
  2. Breakpoint numbers used to be integers. However, GDB can provide non-integer ids in some cases (e.g., bp 1.2). Multiple methods were change to accept strings instead of int for breakpoints. Although the impact may seem large, adapting to them is straightforward.
    1. You should look out for the following:
      1. Obviously compiler errors that ask for a String instead of an int or Integer
      2. Look for the use of == when using breakpoint numbers. Those should be replaced with String#equals().
      3. Integer.valueOf(bpId) accepts both the type int and String, so the compiler will not show an error when the parameter bpId becomes a string. You may want to review such cases.
    2. The list of actual changes follows:
      1. MIBreakpoint#getNumber() which used to return an int now returns a String
      2. CLITraceInfo#getTraceReference() which used to return an Integer now returns a String
      3. CLIInfoBreakInfo#getBreakpointToGroupMap() which used to return Map<Integer, String[]> now returns Map<String, String[]>
      4. The constructor MIWatchpointTriggerEvent(IExecutionDMContext, int, MIResult[], MIFrame, int number, String, String, String) has been replaced with MIWatchpointTriggerEvent(IExecutionDMContext, int, MIResult[], MIFrame, String number, String, String, String)
      5. MIWatchpointTriggerEvent#getNumber() which used to return an int now returns a String
      6. The constructor MIWatchpointScopeEvent(IExecutionDMContext, int, MIResult[], MIFrame, int number) has been replaced with MIWatchpointScopeEvent(IExecutionDMContext, int, MIResult[], MIFrame, String number)
      7. MIWatchpointScopeEvent#getNumber() which used to return an int now returns a String
      8. The constructor MICatchpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, int bkptno, String, String) has been replaced with MICatchpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, String bkptno, String, String)
      9. The method MICatchpointHitEvent#parse(IExecutionDMContext, int, MIResult[], int bkptNumber, String) has been replaced with MICatchpointHitEvent#parse(IExecutionDMContext, int, MIResult[], String bkptNumber, String)
      10. The constructor MIBreakpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, int bkptno) has been replaced with MIBreakpointHitEvent(IExecutionDMContext, int, MIResult[], MIFrame, String bkptno)
      11. MIBreakpointHitEvent#getNumber() which used to return an int now returns a String
      12. The constructor MITracepointSelectedEvent(IExecutionDMContext, int, MIResult[], MIFrame, int trptno, int) has been replaced with MITracepointSelectedEvent(IExecutionDMContext, int, MIResult[], MIFrame, String trptno, int)
      13. The constructor MIBreakEnable(IBreakpointsTargetDMContext ctx, int[] array) has been replaced with MIBreakEnable(IBreakpointsTargetDMContext ctx, String[] array)
      14. The constructor MIBreakDisable(IBreakpointsTargetDMContext ctx, int[] array) has been replaced with MIBreakDisable(IBreakpointsTargetDMContext ctx, String[] array)
      15. The constructor MIBreakDelete(IBreakpointsTargetDMContext ctx, int[] array) has been replaced with MIBreakDelete(IBreakpointsTargetDMContext ctx, String[] array)
      16. The constructor MIBreakCondition(IBreakpointsTargetDMContext ctx, int breakpoint, String) has been replaced with MIBreakCondition(IBreakpointsTargetDMContext ctx, String breakpoint, String)
      17. The constructor MIBreakCommands(IBreakpointsTargetDMContext ctx, int breakpoint, String[]) has been replaced with MIBreakCommands(IBreakpointsTargetDMContext ctx, String breakpoint, String[])
      18. The constructor MIBreakAfter(IBreakpointsTargetDMContext ctx, int breakpoint, int) has been replaced with MIBreakAfter(IBreakpointsTargetDMContext ctx, String breakpoint, int)
      19. The constructor CLIPasscount(IBreakpointsTargetDMContext ctx, int breakpoint, int) has been replaced with CLIPasscount(IBreakpointsTargetDMContext ctx, String breakpoint, int)
      20. All methods corresponding to the above changed constructors have also been changed in CommandFactory.java to accept a String parameter for the breakpoint
      21. The method MIBreakpointsSynchronizer#targetBreakpointDeleted(int id) has been replaced with MIBreakpointsSynchronizer#targetBreakpointDeleted(String id)
      22. The method MIBreakpointsSynchronizer#isTargetBreakpointDeleted(IBreakpointsTargetDMContext, int bpId, boolean) has been replaced with MIBreakpointsSynchronizer#isTargetBreakpointDeleted(IBreakpointsTargetDMContext, String bpId, boolean)
      23. The method MIBreakpoints#getBreakpointMap(IBreakpointsTargetDMContext) which used to return Map<Integer, MIBreakpointDMData[]> now returns Map<String, MIBreakpointDMData[]>
      24. The method MIBreakpoints#createNewBreakpointMap(IBreakpointsTargetDMContext) which used to return Map<Integer, MIBreakpointDMData[]> now returns Map<String, MIBreakpointDMData[]>
      25. The constructor MIBreakpoints#MIBreakpointDMContext(MIBreakpoints, IDMContext[], int reference) has been replaced with MIBreakpoints#MIBreakpointDMContext(MIBreakpoints, IDMContext[], String reference)
      26. The constructor MIBreakpoints#MIBreakpointDMContext(String, IDMContext[], int reference) has been replaced with MIBreakpoints#MIBreakpointDMContext(String, IDMContext[], String reference)
      27. The method MIBreakpoints#MIBreakpointDMContext#getReference() which used to return an int, now returns a String
      28. The method MIBreakpoints#changeCondition(IBreakpointsTargetDMContext, int reference, String, RequestMonitor) has been replaced with MIBreakpoints#changeCondition(IBreakpointsTargetDMContext, String reference, String, RequestMonitor)
      29. The method MIBreakpoints#changeIgnoreCount(IBreakpointsTargetDMContext, int reference, int, RequestMonitor) has been replaced with MIBreakpoints#changeIgnoreCount(IBreakpointsTargetDMContext, String reference, int, RequestMonitor)
      30. The method MIBreakpoints#enableBreakpoint(IBreakpointsTargetDMContext, int reference, RequestMonitor) has been replaced with MIBreakpoints#enableBreakpoint(IBreakpointsTargetDMContext, String reference, RequestMonitor)
      31. The method MIBreakpoints#disableBreakpoint(IBreakpointsTargetDMContext, int reference, RequestMonitor) has been replaced with MIBreakpoints#disableBreakpoint(IBreakpointsTargetDMContext, String reference, RequestMonitor)
      32. The method MIBreakpoints#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, int reference, RequestMonitor) has been replaced with MIBreakpoints#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, String reference, RequestMonitor)
      33. The method MIBreakpoints#getBreakpointTargetContext(int reference) has been replace with MIBreakpoints#deleteBreakpointFromTarget(String reference)
      34. MIBreakpointDMData#getReference() which used to return an int now returns a String
      35. MIBreakpointDMData#getNumber() which used to return an int now returns a String
      36. The constructor GDBRunControl_7_0_NS#RunToLineActiveOperation(IMIExecutionDMContext, int bpId, String, String, boolean) has been replaced with GDBRunControl_7_0_NS#RunToLineActiveOperation(IMIExecutionDMContext, String bpId, String, String, boolean)
      37. GDBRunControl_7_0_NS#RunToLineActiveOperation#getBreakpointId() which used to return an int now returns a String
      38. The method GDBBreakpoints_7_4#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, int reference, RequestMonitor) has been replaced with GDBBreakpoints_7_4#deleteBreakpointFromTarget(IBreakpointsTargetDMContext, String reference, RequestMonitor)
      39. The method GDBBreakpoints_7_0#changePassCount(IBreakpointsTargetDMContext, int reference, int, RequestMonitor) has been replaced with GDBBreakpoints_7_0#changePassCount(IBreakpointsTargetDMContext, String reference, int, RequestMonitor)
  3. The constructor GdbDebugServicesFactory.GdbDebugServicesFactory(String) has been deprecated in preference to GdbDebugServicesFactory.GdbDebugServicesFactory(String, ILaunchConfiguration). The launch configuration passed to the constructor is used to determine if the configuration is for GDB non-stop mode.
  4. The class GdbDebugServicesFactoryNS has been removed and its logic was merged into class GdbDebugServicesFactory. Classes extending GdbDebugServicesFactory can override GdbDebugServicesFactory.getIsNonStopMode() to provide custom logic to determine if a launch should be using non-stop or not without having to override GdbDebugServicesFactory.createRunControlService(DsfSession).
  5. The protected method GdbLaunchDelegate.cleanupLaunch() has been removed. It has been replaced with GdbLaunchDelegate.cleanupLaunch(ILaunch). Although the replaced method was not deprecated, it was used in an incorrect fashion and we felt it was justified to modify it.
  6. GdbLaunchDelegate.getLaunch() no longer initializes the launch. Initializing the launch needs to be done in launchDebugSession if overridden by calling launch.initialize().
  7. The deprecated protected methods GDBBackend.getGDBCommandLine() and GDBBackend.launchGDBProcess(String) were removed. GDBBackend.getGDBCommandLineArray() and GDBBackend.launchGDBProcess(String[]) should be used instead.
  8. The deprecated protected method GdbLaunchDelegate.newServiceFactory(String) was removed. It was replaced with GdbLaunchDelegate.newServiceFactory(ILaunchConfiguration, String)
  9. The constructor MIThreadGroupExitedEvent(IProcessDMContext, int, String) was removed. MIThreadGroupExitedEvent(IProcessDMContext, int, MIResult[]) should be used instead.
  10. The constructor MITargetAttach(ICommandControlDMContext, String) was removed. MITargetAttach(IMIContainerDMContext, String) or MITargetAttach(IMIContainerDMContext, String, boolean) should be used instead.
  11. Based on the previous change, the method CommandFactory.createMITargetAttach(ICommandControlDMContext, String) was removed. CommandFactory.createMITargetAttach(IMIContainerDMContext, String) or CommandFactory.createMITargetAttach(IMIContainerDMContext, String, boolean) should be used instead.
  12. The constructors MIFileExecAndSymbols(ICommandControlDMContext) and MIFileExecAndSymbols(ICommandControlDMContext, String) where removed. MIFileExecAndSymbols(IMIContainerDMContext) and MIFileExecAndSymbols(IMIContainerDMContext, String) should be used instead.
  13. In GDBControl_7_0, the classes InitializationShutdownStep, CommandMonitoringStep, CommandProcessorsStep, RegisterStep were removed; their counterparts, defined in GDBControl, should be used instead.
  14. Based on the previous change, the class GDBControl_7_0.ListFeaturesStep now extends GDBControl.InitializationShutdownStep instead of the removed GDBControl_7_0.InitializationShutdownStep.
  15. MIVariableManager.MIVariableObject.setExpressionData(String,String,int) was removed. The method MIVariableManager.MIVariableObject.setExpressionData(ExpressionInfo,String,int,boolean) should be used instead.
  16. GdbLaunchDelegate.newServiceFactory(String) was removed. It has been replaced with GdbLaunchDelegate.newServiceFactory(ILaunchConfiguration, String)
  17. The methods MIDataListRegisterValues.MIDataListRegisterValues(IMIExecutionDMContext, int) and MIDataListRegisterValues.MIDataListRegisterValues(IMIExecutionDMContext, int, int[]) were removed. Callers should instead use the methods of the same name but passing in an IFrameDMContext instead of an IMIExecutionDMContext.
  18. Following the above change, the methods CommandFactory.MIDataListRegisterValues(IMIExecutionDMContext, int) and CommandFactory.MIDataListRegisterValues(IMIExecutionDMContext, int, int[]) have also been removed, and their corresponding methods using IFrameDMContext should be used instead.
  19. The method GDBRunControl_7_0_NS.eventDispatched(ITraceRecordSelectedChangedDMEvent) was removed. GDBRunControl_7_2_NS.eventDispatched(ITraceRecordSelectedChangedDMEvent) should be used instead.
  20. Support for the obsolete Apple GDB was removed
    • The following macos packages were removed:
      • org.eclipse.cdt.dsf.gdb.service.macos,
      • org.eclipse.cdt.dsf.mi.service.command.commands.macos,
      • org.eclipse.cdt.dsf.mi.service.command.output.macos
      • org.eclipse.cdt.debug.gdbjtag.core.dsf.gdb.service.macos
    • The following classes, contained in the above packages are now removed:
      • MacOSCommandFactory.java
      • MacOSGDBProcesses.java
      • MacOSGDBRunControl.java
      • MacOSGdbDebugServicesFactory.java
      • MacOSMIEnvironmentCD.java
      • MacOSMIVarUpdate.java
      • MacOSMIVarUpdateInfo.java
      • MacOSGdbJtagDebugServicesFactory.java
    • The constant LaunchUtils.MACOS_GDB_MARKER was removed.
  21. GDBLaunch#initialize() it can now throw DebugException

org.eclipse.cdt.launch.remote

  1. The class RemoteCMainTab was removed as part of the CDI cleanup. RemoteCDSFMainTab should be used instead. Using the old RemoteCMainTab without the corresponding CDI launch would have unspecified behavior, so it was removed.

org.eclipse.cdt.testsrunner

  1. The class CdiRunTestsLaunchDelegate was renamed RunTestsLaunchDelegate, as part of the CDI cleanup.

org.eclipse.cdt.debug.gdbjtag.core

  1. The constructor GdbJtagDebugServicesFactory.GdbJtagDebugServicesFactory(String) has been replaced by GdbJtagDebugServicesFactory.GdbJtagDebugServicesFactory(String, ILaunchConfiguration)

org.eclipse.cdt.debug.gdbjtag.ui

  1. The class GDBJtagCDICMainTab was removed as part of the CDI cleanup. GDBJtagDSFCMainTab should be used instead. Using the old GDBJTagCDICMainTab without the corresponding CDI launch would have unspecified behavior, so it was removed.


org.eclipse.cdt.managedbuilder.ui

  1. The class ToolChainSelectionPage was removed. It was being used by a wizard that was never used and that was removed.


org.eclipse.cdt.launch

  1. The class LocalCDILaunchDelegate has been removed as part of the CDI cleanup. For a Run launch, the class LocalRunLaunchDelegate should be used instead. For a Debug launch, the DSF-GDB launch delegate should be used.
  1. The class CDebuggerTab and AbstractCDebuggerTab have been removed as part of the CDI cleanup. The abstract class CLaunchConfigurationTab can be extended instead to obtain the non-CDI functionality.

org.eclipse.cdt.ui

  1. The classes NewCDTProjectWizard, ProjectTypePage, TemplateSelectionPage were removed. The wizard and its pages were never used and were not fully functional.
  2. The extension point projectTypePages was removed. It was being used by a wizard that was never used and that was removed.

Plugin-removal

  1. The p2/ directory was completely removed from the CDT git repository. It included the following plugins:
    • org.eclipse.cdt.p2 was removed
    • org.eclipse.cdt.p2-feature was removed
    • org.eclipse.cdt.p2.generator was removed
  2. The old org.eclipse.cdt.releng was removed. It was the old way of doing CDT releases.
  3. The org.eclipse.cdt.core.linux.ai64 and org.eclipse.cdt.core.qnx plusings have been removed. Those two targets are no longer supported.
  4. The org.eclipse.linuxtools.cdt.autotools.core plugin has been removed. It had been replaced with org.eclipse.cdt.autotools.core

Back to the top