(ddd.info)Top


Next: Summary Up: (dir)
Enter node , (file) or (file)node

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', 8 Feb, 2009, for
DDD Version 3.3.12.

   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
GNU Make 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
Make
Using DDD with GNU Make
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