|
|
(11 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. }} |
− | | + | |
− | == 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
| + | |