Jump to: navigation, search


Revision as of 15:26, 29 October 2013 by Jjohnstn.redhat.com (Talk | contribs) (How to try it out)

This page details the effort to create a stand-alone Debugger using Eclipse.


How to try it out

  1. Clone the CDT git repository
  2. Checkout the GDBStandalone branch
    • cd org.eclipse.cdt; git checkout GDBStandalone
  3. Start up a Kepler 4.3 Eclipse
  4. In Eclipse, import the CDT plug-ins
    • Click from the top menu: File->Import
    • Choose Git->Projects from Git
    • Choose "local" repository and click Next
    • Click the Add button if org.eclipse.cdt/.git isn't found in list
      • Type in the location of the org.eclipse.cdt directory you cloned into
      • Remember to specify org.eclipse.cdt as part of the location
      • Hit Search button
      • Make sure the directory with org.eclipse.cdt/.git is checked on
      • Hit Finish
    • Select the CDT repository (org.eclipse.cdt/.git) and hit Next
    • Select to Import Existing Projects from the wizard if not already defaulted
    • Click Next
    • Select all projects, then deselect all projects that do not start with org.eclipse.cdt or GDBStandalone
      • You can also deselect org.eclipse.cdt.p2 projects as well
    • Hit Finish
  5. Now import the sample launch configuration
    • File->Import...
    • Choose Run/Debug->Launch configurations
    • Point to your [CDT clone directory]/debug/GDBStandalone/GDBStandalone.application.launch
    • Select the launch and hit Finish
  6. Edit the launch configuration
    • Click on the top menu: Run
    • Select Run Configurations...
    • Open up the tree element Eclipse Applications
    • Select GDBStandalone
    • Select the Arguments tab
    • Change the executable after -e to be the location of the executable you want to debug followed by arguments
      • In the future a wrapper script will be provided so you can specify this from the command line
      • If you have the build log for the executable, add -b [log file location]
        • This will allow the indexer to have all the correct build flags and include paths to index with
  7. The debugger will be up and running
    • Click on Help->Help Contents to find out how to use the C/C++ debugger
    • Open up C/C++ Development User Guide -> Tasks -> Running and debugging projects -> Debugging
    • Look at sections after starting executable which you have already done
  8. When the executable is complete, you can relaunch
    • Right-click on top line
    • Choose
  9. If you want, create a new launch to run last executable
    • Click on the top menu: Run->Run configurations...
    • Open Eclipse Applications and right-click on the GDBStandlone launch you just added'
    • Rename it if you want to
    • Select Arguments tab
    • Remove the -e arguments to end of line
    • With no executable specified, the last launch is used, if one exists
    • Using the last launch saves cleaning up of the executable and doesn't require importing again


Sept 17, 2013

  • first pass at standalone GDB debugger using CDT components
  • using Eclipse application and restricting plug-ins used
  • debugger is working but indexer is not being invoked
  • header files not being recognized

Sept 23, 2013

  • added default GCC spec file LanguageSettingsProvider
  • this gets standard header files to open in Outline view

Sept 30, 2013

  • added code to add all source files specified as Project resources
  • this gets indexer to work and adds non-C-standard header file support

Oct 07, 2013

  • Removed Source and Refactoring menus using IActivity filters

Oct 14, 2013

  • added support for reading .debug_macro section to find command-line flags
    • currently not being picked up by indexer for header files

Oct 21, 2013

  • added Dwarf4 support to CDT
    • code submitted upstream for review
  • solved issue with indexer using data discovered from .debug_macro
    • command line macros now discovered from modules compiled with -g3

Oct 28, 2013

  • changed code to clean-up if an executable is specified
    • running again with no executable specified will use the last launch
  • added support for specifying build console
    • build console is parsed for flags and include path settings