(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', 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