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.
DSDP/DD/GDB
The GDB subgroup is focused on implementing a GDB debugger integration with Eclipse using the DSF framework.
Contents
Buiding and Running Instructions
To build:
- Install the latest milestone of Eclipse 3.4
- Install the latest milestone of CDT 5.0
- Check out following projects from /cvsroot/dsdp/org.eclipse.dd.dsf/plugins (HEAD)
- org.eclipse.dd.dsf
- Contains basic concurrency and service APIs and tools.
- org.eclipse.dd.dsf.ui
- Contains base viewer model APIs and tools.
- org.eclipse.dd.dsf.debug
- Contains APIs for debugger services.
- org.eclipse.dd.dsf.debug.ui
- Contains viewer model implementations for debugger views.
- org.eclipse.dd.mi
- Debug service implementations utilizing GDB/MI protocol-based back end.
- org.eclipse.dd.dsf.gdb
- GDB-specific service extensions.
- org.eclipse.dd.dsf.gdb.ui
- GDB-specific UI.
- org.eclipse.dd.dsf.gdb.launch
- Registration of the GDB Launch (it is separated in its own plugin to allow debugger integrations to provide a customized launch and leave this one out.)
- Build the dsf plugins just checked-out
To run:
- Install and configure gdb (GDB 6.7 on Linux)
- From your running Eclipse, launch a new Eclipse application so as to use the above plugins (note that the version of these plugins which is downloaded by Eclipse if you install DSF, are not the latest version and do not work; that is why you must check them out and build them in the step above.)
- Create a new "Managed make build project" called "hello".
- Create a simple hello.c source file:
#include <stdio.h> int main(void) { printf("Hello world1\n"); printf("Hello world2\n"); printf("Hello world3\n"); return 0; }
- Build the project.
- Create a new "DSF C/C++ Local Application" launch configuration (one with the pink icon with the letter C inside (or a red square if the icon cannot be displayed for some reason))
- In the Debugger tab, set the Debugger field to "gdb/mi", check "Stop on startup at:" and choose "main", set the GDB debugger to the location of your copy of GDB, set the GDB command set to "Standard" and the Protocol to "mi".
- Launch your project
- If not in the Debug perspective, manually change perspectives
- In the Debug view (within the Debug perspective), you should see your process listed. Expand the process tree until you can select the main thread. Once selected, you should see the current line of code highlighted and the Step and Resume buttons become active.
- In the case of Cygwin, if the "source not found" page appears, the path mapping needs to be created. This is an issue with latest cygwin gdb.
- Click on the "Edit source lookup" button in the editor, or right click on the launch node in Debug View and select "Edit source lookup"
- Click on the "Add..." button
- Select "Path Mapping" and click OK.
- Select the new "Path Mapping" source container and click the "Edit..." button.
- Once again, click the "Add..." button to create a mapping.
- Enter the path to map from. Look at the stack frame label in Debug view, if the filename is something like "/cygdrive/c/workspace/hello/hello.c", enter the path to the first real directory "/cygdrive/c/workspace".
- Enter the correct path to the directory entered above, in the file system. In example above, it would be "C:\workspace".
- Click OK three times and you'll be back in Kansas.... ehm Debug view that is.
- If the source doesn't show up right away, try stepping once.
Note: It is also possible to edit a preference setting which will apply this source path mapping to every new launch. See Window->Preferences->C/C++->Debug.
Supported Platforms
Currently the only supported (tested) platform is Linux with GDB 6.7.
Current Features
- Launching
- The "DSF C/C++Local Application" is the standard CDT launch configuration minus some of the features.
- What is NOT working here is
- Debugger tab: Debugger Options section
- Debug view
- Single thread debugging only.
- Terminating
- Stepping
- Resume/Suspend
- Console support
- CLI command input/output
- user process console output support
- Breakpoints
- Basic CDT breakpoint support implemented
- Variables
- Registers
- Disassembly (Planned for 1.0)
- Modules (no symbols)
GDB Subgroup Meetings
- DSDP/DD/DSF_Phone_9-October-2008
- DSDP/DD/DSF_Phone_2-October-2008
- DSDP/DD/DSF_Phone_04-September-2008
- DSDP/DD/DSF_Phone_28-August-2008
- DSDP/DD/DSF_Phone_21-August-2008
- DSDP/DD/DSF_Phone_14-August-2008
- DSDP/DD/DSF_Phone_7-August-2008
- DSDP/DD/DSF_Phone_31-July-2008
- DSDP/DD/DSF_Phone_24-July-2008
- DSDP/DD/DSF_Phone_17-July-2008
- DSDP/DD/DSF_Phone_3-July-2008
- DSDP/DD/DSF_Phone_26-June-2008
- DSDP/DD/DSF_Phone_19-June-2008
- DSDP/DD/DSF_Phone_12-June-2008
- DSDP/DD/DSF_Phone_5-June-2008
- DSDP/DD/DSF_Phone_29-May-2008
- DSDP/DD/DSF_Phone_20-May-2008
- DSDP/DD/DSF_Phone_15-May-2008
- DSDP/DD/DSF_Phone_6-May-2008
- DSDP/DD/DSF_Phone_29-April-2008
- DSDP/DD/DSF_Phone_22-April-2008
- DSDP/DD/DSF_Phone_15-April-2008
- DSDP/DD/DSF_Phone_8-April-2008
- DSDP/DD/DSF_Phone_1-April-2008
- DSDP/DD/DSF_Phone_25-March-2008
- DSDP/DD/DSF_Phone_11-March-2008
- DSDP/DD/DSF_Phone_4-March-2008
- DSDP/DD/DSF_Phone_26-February-2008
- DSDP/DD/DSF_Phone_19-February-2008
- DSDP/DD/DSF_Phone-12-February-2008
- DSDP/DD/DSF_Phone-5-February-2008
- DSDP/DD/DSF_Phone_22-January-2008
- DSDP/DD/DSF_Phone_15-January-2008
- DSDP/DD/DSF_Phone_8-January-2008
- Phone Meeting 18-December-2007
- Phone Meeting 11-December-2007
- Phone Meeting 4-December-2007
- Phone Meeting 27-November-2007
- Phone Meeting 20-November-2007
- Phone Meeting 13-November-2007
- Phone Meeting 6-November-2007
- Phone Meeting 30-October-2007
- Phone Meeting 23-October-2007
- Phone Meeting 19-October-2007
- Phone Meeting 2-October-2007
- Face-to-Face Meeting 24 September 2007
- Phone Meeting 10-Septermber-2007
- Phone Meeting 5-Septermber-2007
- Phone Meeting 28-August-2007
- Phone Meeting 21-August-2007
- Phone Meeting 14-August-2007
- Phone Meeting 7-August-2007
- Phone Meeting 24-July-2007
- Phone Meeting 17-July-2007
- Phone Meeting 10-July-2007
- Phone Meeting 3-July-2007
- Phone Meeting 26-June-2007
- Phone Meeting 19-June-2007
- Phone Meeting 14-June-2007
- Phone Meeting 7-June-2007
- Phone Meeting 30-May-2007
- Phone Meeting 24-May-2007
- Face-to-Face Meeting 14-18 May 2007
- Phone Meeting 10-May-2007
- Phone Meeting 3-May-2007
- Phone Meeting 26-April-2007
- Phone Meeting 19-April-2007
- Phone Meeting 12-April-2007
- Phone Meeting 05-April-2007
- Phone Meeting 29-March-2007
- Phone Meeting 22-March-2007