Jump to: navigation, search

Difference between revisions of "CDT/StandaloneDebugger"

< CDT
(How to try it out)
Line 9: Line 9:
 
#* git clone git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
 
#* git clone git://git.eclipse.org/gitroot/cdt/org.eclipse.cdt.git
 
# Checkout the GDBStandalone branch
 
# Checkout the GDBStandalone branch
#* git checkout GDBStandalone
+
#* cd org.eclipse.cdt; git checkout GDBStandalone
 
# Start up a Kepler 4.3 Eclipse
 
# Start up a Kepler 4.3 Eclipse
 
#* Go to http://www.eclipse.org/downloads/index-developer.php
 
#* Go to http://www.eclipse.org/downloads/index-developer.php
 
#* Download and unpack the Eclipse standard package for your system
 
#* Download and unpack the Eclipse standard package for your system
 +
#* run DIRECTORY_YOU_UNPACKED_TO/eclipse/eclipse -data ~/workspace-gdbstandalone
 +
#* this will start up Eclipse
 
# In Eclipse, import the CDT plug-ins
 
# In Eclipse, import the CDT plug-ins
#* Click File->Import
+
#* Click from the top menu: File->Import
 
#* Choose Git->Projects from Git
 
#* Choose Git->Projects from Git
#* Choose local repository and click Next
+
#* Choose "local" repository and click Next
#* Click the Add button if CDT isn't found in list
+
#* 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
 
#** Type in the location of the org.eclipse.cdt directory you cloned into
 
#** Remember to specify org.eclipse.cdt as part of the location
 
#** Remember to specify org.eclipse.cdt as part of the location
 
#** Hit Search button
 
#** Hit Search button
#** Make sure the directory with .git is checked on
+
#** Make sure the directory with org.eclipse.cdt/.git is checked on
 
#** Hit Finish
 
#** Hit Finish
#* Select the CDT repository and hit Next
+
#* Select the CDT repository (org.eclipse.cdt/.git) and hit Next
#* Select the Import Existing Projects wizard if not already defaulted
+
#* Select to Import Existing Projects from the wizard if not already defaulted
 
#* Click Next
 
#* Click Next
#* Select all, then deselect all projects that do not start with org.eclipse.cdt or GDBStandalone
+
#* 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
 
#** You can also deselect org.eclipse.cdt.p2 projects as well
 
#* Hit Finish
 
#* Hit Finish
# Import a launch configuration
+
# Now import the sample launch configuration
 
#* File->Import...
 
#* File->Import...
 
#* Choose Run/Debug->Launch configurations
 
#* Choose Run/Debug->Launch configurations
#* Point to your CDT clone directory/debug/GDBStandalone/GDBStandalone.application.launch
+
#* Point to your [CDT clone directory]/debug/GDBStandalone/GDBStandalone.application.launch
 +
#* Select the launch and hit Finish
 +
# 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
 +
# The debugger will be up and running
 +
# Click on Help->Help Topics to find out how to use the C/C++ debugger
 +
# When the executable is complete, you can relaunch
 +
#* Right-click on top line
 +
#* Choose
 +
# 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
  
 
== Status ==
 
== Status ==

Revision as of 15:22, 29 October 2013

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

StandaloneDebuggerScreenshot.png


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
  8. Click on Help->Help Topics to find out how to use the C/C++ debugger
  9. When the executable is complete, you can relaunch
    • Right-click on top line
    • Choose
  10. 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

Status

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