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

Difference between revisions of "CDT/StandaloneDebugger"

< CDT
(Replaced content with "{{warning|Note: The contents of this page has been migrated to GitHub. Please see the [https://github.com/eclipse-cdt/cdt/blob/main/StandaloneDebugger.md Standalone Debugg...")
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page details the effort to create a stand-alone Debugger using Eclipse.
+
{{warning|Note: The contents of this page has been migrated to GitHub. Please see the [https://github.com/eclipse-cdt/cdt/blob/main/StandaloneDebugger.md Standalone Debugger] for current information, or the page history for historical versions. }}
 
+
This page details the effort to create a stand-alone Debugger using Eclipse.
+
 
+
== What is it? ==
+
 
+
The Standalone Debugger is an Eclipse application that starts up a subset of the Eclipse CDT plug-ins that pertain
+
specifically to debugging.  The application has an accompanying command-line script which allows an end-user to
+
start up the debugger from the command-line and pass arguments that will start the debugger for the appropriate task.
+
 
+
The end-user can specify either to debug an application, to attach to an existing process, or to debug a core-file.
+
In addition, a build log can be specified to aid the Debugger in locating include files and knowing what flags were
+
used to compile the source code.
+
 
+
Usage: <nowiki>cdtdebug.sh [ECLIPSE_OPTIONS] [-b BUILD_LOG] [TARGET_OPTION]</nowiki>
+
 
+
Debug an executable, core-file, or an existing process using the Eclipse
+
C/C++ Stand-alone Debugger.  Eclipse command-line options may be passed
+
except for -vmargs which is being used to start up the Eclipse Debugger.
+
 
+
Operation modes:
+
  -h, --help                print this help, then exit
+
 
+
Indexing assist options:
+
  -b BUILD_LOG              build log to use for compiler includes/flags
+
 
+
Target options:
+
  -a                        attach to an existing process (list will be shown)
+
  -c COREFILE              debug core-file (should also specify executable)
+
  -e EXECUTABLE [ARGS...]  debug given executable (passing ARGS to main)
+
 
+
The -e option must be used last as subsequent options are passed to main.
+
 
+
Specifying insufficient arguments for a particular target will result in a
+
dialog displayed to enter the required values for that target.  Specifying
+
no target option brings up a dialog for debugging an executable with the
+
executable path, program arguments, and build log filled in from the last -e
+
invocation, if one exists.
+
 
+
Wiki page: <http://wiki.eclipse.org/CDT/StandaloneDebugger>
+
 
+
Normally, in Eclipse, a user needs to set up an Eclipse project. In the case of C/C++ development, this means a
+
C/C++ project.  As there are multiple ways of building a C/C++ project (e.g. using Autotools or a Standard Makefile project),
+
there are multiple types of C/C++ projects.  Rather than impose the project model on the end-user that just wishes
+
to debug, the Standalone Debugger automatically creates a project on behalf of the end-user.  As mentioned, the Standalone Debugger only loads a subset of the CDT plug-ins pertaining
+
to debugging and build plug-ins are not included in this list.  This enables the Standalone debugger to create a default
+
project without having to know details on how the project is built.
+
 
+
[[Image:StandaloneDebuggerScreenshot.png]]
+
 
+
 
+
== How to try it out ==
+
 
+
# Download the IDE for C/C++ Developers Luna M7 product tar file
+
#* https://www.eclipse.org/downloads/index-developer.php
+
# Untar the C/C++ IDE into a local directory (let's call this $CPP_LUNA_M7_DIR)
+
# cd $CPP_LUNA_M7_DIR/eclipse/plugins/org.eclipse.cdt.debug.application_1.0.0.201405061918/scripts
+
# Run the command:
+
#* sh ./install.sh
+
#* this will create the directory: $HOME/cdtdebugger for you and fill it appropriately
+
# To run the debugger:
+
#* $HOME/cdtdebugger/cdtdebug.sh [-data workspace] [-consoleLog] -a | [-b build_log_location] [-c core_file_location] [-e executable_path] [arg1 ... argn]
+
#* this will default to workspace-gdbstandalone if you do not specifiy a workspace via the -data option
+
#* if you run with no arguments, it will debug the same executable you ran the last time
+
#* if you specify a core file, you must also specify an executable
+
#* the cdtdebug command can be moved from $HOME/cdtdebugger if you wish
+
 
+
== 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
+
 
+
=== Nov 18, 2013 ===
+
 
+
* added progress dialog
+
* added support for running via command-line script
+
** fixed program argument parsing
+
** figured out what minimally is needed to reuse repository
+
* fixed some warnings and errors
+
 
+
=== Dec 20, 2013 ===
+
 
+
* added gdbstandalone.zip to run from command line with Luna M4 CPP EPP
+
* added default jar to use with Eclipse Luna M4 CPP EPP
+
* completed GDBStandalone.product which contains icons
+
* added check for invalid executable
+
** special dialog brought up to fix executable location and enter arguments
+
* fixed NPE issue when running debugger 2nd time on same workspace
+
 
+
=== Jan 15, 2014 ===
+
 
+
* added New Executable dialog off of File menu to allow specification of different executable to debug
+
* added Help doc support, but no docs enabled as of yet
+
* added Customize Perspective from Window menu to allow enablement of Reverse Debugging and C/C++ Tracepoint support
+
 
+
=== Jan 17, 2014 ===
+
 
+
* added Help menu which contains Help Contents, Search, Dynamic Help, and About Eclipse items
+
 
+
=== Feb 07, 2014 ===
+
 
+
* added User Guide which is transformed CDT guide
+
* added mnemonics for menus
+
* updated for Luna M5
+
 
+
=== May 09, 2014 ===
+
 
+
* Standalone debugger is part of Luna M7
+
* shipped with C/C++ EPP for Luna M7
+
* includes installation script to install locally
+
* includes core-file debugging support
+
* includes attach to executable debugging support
+

Latest revision as of 10:49, 9 November 2022

Warning2.png
Note: The contents of this page has been migrated to GitHub. Please see the Standalone Debugger for current information, or the page history for historical versions.

Back to the top