(ddd.info)Top
Debugging with DDD
******************
DDD is a graphical front-end for GDB and other command-line
debuggers.
This is the First Edition of `Debugging with DDD', 15 January, 2004,
for DDD Version 3.3.11.
The first part of this master menu lists the major nodes in this Info
document, including the label and command indices. The rest of the menu
lists all the lower level nodes in the document.
Summary- Summary of DDD.
Sample Session- A sample DDD session.
Invocation- Getting in and out of DDD.
Windows- The DDD windows, menus, and buttons.
Navigating- Moving through the source code.
Stopping- Making your program stop at specific locations.
Running- Running programs under DDD.
Examining Data- Examining variable values and data structures.
Machine-Level Debugging- Examining machine code and registers.
Changing the Program- Changing source and object code.
Commands- Entering and editing DDD commands.
Application Defaults- Resources used in DDD.
Bugs- How, when, and why to report DDD bugs.
Configuration Notes- Configuration-specific notes.
Dirty Tricks- Room for your contributions.
Extending- Extending DDD.
FAQ- Frequently Answered Questions.
License- The DDD license.
Help and Assistance- Mailing Lists and other resources.
Documentation License- The license of this document.
Label Index- All labels shown on the DDD GUI.
Key Index- Keys used to control DDD.
Command Index- Commands that can be typed within DDD.
Resource Index- All resources and environment variables.
File Index- All programs and files referenced by DDD.
Concept Index- All concepts as mentioned in this manual.
--- The Detailed Node Listing ---
Summary of DDD
About this Manual- Getting copies in various formats.
Free Software- How to copy and redistribute DDD.
Getting DDD- How to obtain copies of DDD.
Contributors- Who has done all this?
History- Old DDD versions.
A Sample DDD Session
Sample Program- Source `sample.c'
Getting In and Out of DDD
Invoking- How to invoke DDD.
Quitting- How to quit DDD.
Sessions- Saving work across invocations.
Remote Debugging- Running DDD on a different host.
Customizing Debugger Interaction- How DDD and GDB communicate.
Invoking DDD
Choosing an Inferior Debugger- Which debugger to use?
Options- How to invoke DDD
X Options- Setting X properties
Inferior Debugger Options- Customizing GDB, DBX, and so on
Multiple Instances- Running multiple DDD instances
X Warnings- Turning off obnoxious warnings
Inferior Debugger Options
GDB Options
DBX and Ladebug Options
XDB Options
JDB Options
PYDB Options
Perl Options
Bash Options
Persistent Sessions
Saving Sessions
Resuming Sessions
Deleting Sessions
Customizing Sessions
Remote Debugging
Remote Host- Running DDD on a Remote Host
Remote Debugger- Using a Remote Inferior Debugger
Remote Program- Debugging a Remote Program
Using DDD with a Remote Inferior Debugger
Customizing Remote Debugging
Customizing Interaction with the Inferior Debugger
Debugger Invocation
Debugger Initialization
Debugger Communication
Initializing the Inferior Debugger
GDB Initialization
DBX Initialization
XDB Initialization
JDB Initialization
PYDB Initialization
Perl Initialization
Bash Initialization
Finding a Place to Start
Opening the Selection
The DDD Windows
Menu Bar- All DDD pull-down menus.
Tool Bar- The DDD icon buttons.
Command Tool- The floating command tool.
Getting Help- What does this thing mean?
Undo and Redo- Oops!
Customizing- You can customize DDD
The Menu Bar
File Menu- Selecting programs and processes.
Edit Menu- Cut, copy, paste, and preferences.
View Menu- All DDD windows.
Program Menu- Starting and stopping.
Commands Menu- All DDD commands.
Status Menu- Examining the program status.
Source Menu- Navigating around.
Data Menu- Examining data.
Maintenance Menu- Maintaining DDD.
Help Menu- Getting help.
Customizing the Menu Bar- Alternate key bindings, etc.
Customizing the Menu Bar
Auto-Raise Menus
Customizing the Edit Menu
The Tool Bar
Customizing the Tool Bar
The Command Tool
Customizing the Command Tool
Customizing Tool Position
Customizing the Command Tool
Disabling the Command Tool
Command Tool Position
Customizing Tool Decoration
Customizing DDD
How Customizing Works
Customizing Help
Customizing Undo
Customizing Windows
Debugger Settings
How Customizing DDD Works
Resources
Changing Resources
Saving Options
Customizing DDD Help
Button tips- Turning off tips.
Tip of the day- Turning off the tip of the day.
Help Helpers- Helper programs invoked by Help.
Customizing the DDD Windows
Splash Screen- Turning off the splash screen.
Window Layout- Re-arranging windows.
Customizing Fonts- Using alternate fonts.
Toggling Windows- Turning off windows.
Text Fields- Popdown histories.
Icons- Iconifying DDD windows.
Adding Buttons- Create your own button set.
More Customizations
Navigating through the Code
Compiling for Debugging- Always use `-g' to compile.
Opening Files- How to open a program for debugging.
Looking up Items- Searching files and functions.
Customizing Source- Arranging the source window.
Opening Files
Opening Programs- How to open a program for debugging.
Opening Core Dumps- Analyze a previous crash.
Opening Source Files- Open a source file of the program.
Filtering Files- DDD only lists matching files.
Looking up Items
Looking up Definitions- Jump towards a specific item.
Textual Search- Search within the current source.
Looking up Previous Locations- Navigate back and forth.
Source Path- Make DDD know where to search.
Customizing the Source Window
Customizing Glyphs
Customizing Searching
Customizing Source Appearance
Customizing Source Scrolling
Customizing Source Lookup
Customizing File Filtering
Stopping the Program
Breakpoints- Stop at a certain point.
Watchpoints- Stop at a certain condition.
Interrupting- Stop manually.
Stopping X Programs- Take care of grabbed pointers!
Breakpoints
Setting Breakpoints
Deleting Breakpoints
Disabling Breakpoints
Temporary Breakpoints
Editing Breakpoint Properties
Breakpoint Conditions
Breakpoint Ignore Counts
Breakpoint Commands
Moving and Copying Breakpoints
Looking up Breakpoints
Editing all Breakpoints
Hardware-Assisted Breakpoints
Watchpoints
Setting Watchpoints
Editing Watchpoint Properties
Editing all Watchpoints
Deleting Watchpoints
Stopping X Programs
Customizing Grab Checking
Running the Program
Starting Program Execution
Using the Execution Window
Attaching to a Process
Program Stop
Resuming Execution
Continuing Somewhere Else
Stack
Undoing Program Execution
Threads
Signals
Killing the Program
Starting Program Execution
Arguments- Your program's arguments.
Environment- Your program's environment.
Working Directory- Your program's directory.
Input/Output- Your program's I/O.
Using the Execution Window
Customizing the Execution Window
Attaching to a Running Process
Customizing Attaching to Processes
Examining the Stack
Frames- Callers and callees.
Backtraces- And you may ask yourself, `how did I get here?'
Selecting a frame- Moving up and down.
Examining Data
Value Tips- Just move the pointer on a variable.
Printing Values- Printing a value in the debugger console.
Displaying Values- Displaying structures as graphs.
Plotting Values- Displaying values as plots.
Examining Memory- Low-level memory examination.
Displaying Complex Values in the Data Window
Display Basics- How to create, manipulate, and delete displays.
Arrays- Special functions for arrays.
Assignment- Setting variable values.
Examining Structures- Dereferencing pointers and other references.
Customizing Displays- Data Themes.
Layouting the Graph- Automatic layout.
Printing the Graph- Printing on paper.
Display Basics
Creating Single Displays
Selecting Displays
Showing and Hiding Details
Rotating Displays
Displaying Local Variables
Displaying Program Status
Refreshing the Data Window
Placement
Clustering
Creating Multiple Displays
Editing all Displays
Deleting Displays
Arrays
Array Slices- Displaying FROM..TO parts of an array
Repeated Values- How repeated values are handled.
Arrays as Tables- Displaying two-dimensional arrays.
Examining Structures
Dependent Values- Edges from values to values.
Dereferencing Pointers- Examining pointer-based data structures.
Shared Structures- Multiple pointers to one display.
Display Shortcuts- Customize your own menus.
Customizing Displays
Using Data Themes
Applying Data Themes to Several Values
Editing Themes
Writing Data Themes
Display Resources
VSL Resources
Layouting the Graph
Moving Displays
Scrolling Data
Aligning Displays
Automatic Layout
Rotating the Graph
Plotting Values
Plotting Arrays- Plotting 1-D and 2-D arrays.
Plot Appearance- Controlling the appearance.
Scalars and Composites- Plotting simple values.
Plotting Histories- Plotting the history of a variable.
Printing Plots- Printing on paper.
Entering Plotting Commands- Raw Gnuplot commands.
Exporting Plot Data- Processing data outside of DDD
Animating Plots- Visualizing dynamic behaviour.
Customizing Plots- All at your leisure.
Customizing Plots
Gnuplot Invocation
Gnuplot Settings
Machine-Level Debugging
Machine Code- Examining machine code.
Machine Code Execution- Stepping across instructions.
Registers- Examining registers.
Customizing Machine Code- Settings.
Changing the Program
Editing Source Code- You can invoke a source editor from DDD.
Recompiling- Invoking `make' from within DDD.
Patching- Changing source and object code.
Editing Source Code
Customizing Editing
In-Place Editing
The Command-Line Interface
Entering Commands- Direct interaction with the inferior debugger.
TTY mode- Controlling DDD from a terminal.
Integrating DDD- DDD and your programming environment.
Defining Buttons- Add your own DDD buttons.
Defining Commands- Add your own DDD commands.
Entering Commands
Command Completion- Using the <TAB> key.
Command History- Repeating previous commands.
Typing in the Source Window
Defining Buttons
Customizing Buttons- Adding your own command buttons.
Defining Commands
GDB Simple Commands
GDB Argument Commands
Commands with Other Debuggers
Application Defaults
Actions- All actions used in translation tables.
Images- All images used in resources,
Actions
General Actions
Data Display Actions
Debugger Console Actions
Source Window Actions
Bugs and How To Report Them
Where to Send Bug Reports- Our e-mail address.
Is it a DDD Bug?- DDD may not be at fault.
How to Report Bugs- Report all the facts.
Bug Reports- Include all configuration information.
Diagnostics- Maintaining DDD
Getting Diagnostics
Logging- DDD logs all interactions.
Debugging DDD- Facilities to debug DDD.
Customizing Diagnostics- All diagnostics resources.
Logging
Disabling Logging
Configuration Notes
GDB- Using DDD with GDB
DBX- Using DDD with DBX
Ladebug- Using DDD with Ladebug
XDB- Using DDD with XDB
JDB- Using DDD with JDB
Perl- Using DDD with Perl
Bash- Using DDD with Bash
LessTif- Using DDD with LessTif
Using DDD with GDB
WDB- Using DDD with WDB
WindRiver GDB- Using DDD with WindRiver GDB (Tornado)
automatically generated by info2www version 1.2.2.9