www.fifi.org Documentation Manpages GNU Info Debian document tree Whole document tree Trigance web page Public services User info Mailing lists Secure server Multilingual usage
Copyright (C) 2000-2012 Philippe Troin <webmaster@fifi.org>.
Validate HTML Validate CSS
Whole document tree
Summary of GDB Free software Contributors to GDB 1. A Sample GDB Session 2. Getting In and Out of GDB 2.1 Invoking GDB 2.1.1 Choosing files 2.1.2 Choosing modes 2.2 Quitting GDB 2.3 Shell commands 3. GDB Commands 3.1 Command syntax 3.2 Command completion 3.3 Getting help 4. Running Programs Under GDB 4.1 Compiling for debugging 4.2 Starting your program 4.3 Your program's arguments 4.4 Your program's environment 4.5 Your program's working directory 4.6 Your program's input and output 4.7 Debugging an already-running process 4.8 Killing the child process 4.9 Debugging programs with multiple threads 4.10 Debugging programs with multiple processes 5. Stopping and Continuing 5.1 Breakpoints, watchpoints, and catchpoints 5.1.1 Setting breakpoints 5.1.2 Setting watchpoints 5.1.3 Setting catchpoints 5.1.4 Deleting breakpoints 5.1.5 Disabling breakpoints 5.1.6 Break conditions 5.1.7 Breakpoint command lists 5.1.8 Breakpoint menus 5.1.9 "Cannot insert breakpoints" 5.2 Continuing and stepping 5.3 Signals 5.4 Stopping and starting multi-thread programs 6. Examining the Stack 6.1 Stack frames 6.2 Backtraces 6.3 Selecting a frame 6.4 Information about a frame 7. Examining Source Files 7.1 Printing source lines 7.2 Searching source files 7.3 Specifying source directories 7.4 Source and machine code 8. Examining Data 8.1 Expressions 8.2 Program variables 8.3 Artificial arrays 8.4 Output formats 8.5 Examining memory 8.6 Automatic display 8.7 Print settings 8.8 Value history 8.9 Convenience variables 8.10 Registers 8.11 Floating point hardware 9. Using GDB with Different Languages 9.1 Switching between source languages 9.1.1 List of filename extensions and languages 9.1.2 Setting the working language 9.1.3 Having GDB infer the source language 9.2 Displaying the language 9.3 Type and range checking 9.3.1 An overview of type checking 9.3.2 An overview of range checking 9.4 Supported languages 9.4.1 C and C++ 9.4.1.1 C and C++ operators 9.4.1.2 C and C++ constants 9.4.1.3 C++ expressions 9.4.1.4 C and C++ defaults 9.4.1.5 C and C++ type and range checks 9.4.1.6 GDB and C 9.4.1.7 GDB features for C++ 9.4.2 Modula-2 9.4.2.1 Operators 9.4.2.2 Built-in functions and procedures 9.4.2.3 Constants 9.4.2.4 Modula-2 defaults 9.4.2.5 Deviations from standard Modula-2 9.4.2.6 Modula-2 type and range checks 9.4.2.7 The scope operators :: and . 9.4.2.8 GDB and Modula-2 9.4.3 Chill 9.4.3.1 How modes are displayed 9.4.3.2 Locations and their accesses 9.4.3.3 Values and their Operations 9.4.3.4 Chill type and range checks 9.4.3.5 Chill defaults 10. Examining the Symbol Table 11. Altering Execution 11.1 Assignment to variables 11.2 Continuing at a different address 11.3 Giving your program a signal 11.4 Returning from a function 11.5 Calling program functions 11.6 Patching programs 12. GDB Files 12.1 Commands to specify files 12.2 Errors reading symbol files 13. Specifying a Debugging Target 13.1 Active targets 13.2 Commands for managing targets 13.3 Choosing target byte order 13.4 Remote debugging 13.4.1 The GDB remote serial protocol 13.4.1.1 What the stub can do for you 13.4.1.2 What you must do for the stub 13.4.1.3 Putting it all together 13.4.1.4 Communication protocol 13.4.1.5 Using the gdbserver program 13.4.1.6 Using the gdbserve.nlm program 13.5 Kernel Object Display 14. Configuration-Specific Information 14.1 Native 14.1.1 HP-UX 14.1.2 SVR4 process information 14.2 Embedded Operating Systems 14.2.1 Using GDB with VxWorks 14.2.1.1 Connecting to VxWorks 14.2.1.2 VxWorks download 14.2.1.3 Running tasks 14.3 Embedded Processors 14.3.1 AMD A29K Embedded 14.3.1.1 A29K UDI 14.3.1.2 EBMON protocol for AMD29K 14.3.1.3 Communications setup 14.3.1.4 EB29K cross-debugging 14.3.1.5 Remote log 14.3.2 ARM 14.3.3 Hitachi H8/300 14.3.3.1 Connecting to Hitachi boards 14.3.3.2 Using the E7000 in-circuit emulator 14.3.3.3 Special GDB commands for Hitachi micros 14.3.4 H8/500 14.3.5 Intel i960 14.3.5.1 Startup with Nindy 14.3.5.2 Options for Nindy 14.3.5.3 Nindy reset command 14.3.6 Mitsubishi M32R/D 14.3.7 M68k 14.3.8 M88K 14.3.9 MIPS Embedded 14.3.10 PowerPC 14.3.11 HP PA Embedded 14.3.12 Hitachi SH 14.3.13 Tsqware Sparclet 14.3.13.1 Setting file to debug 14.3.13.2 Connecting to Sparclet 14.3.13.3 Sparclet download 14.3.13.4 Running and debugging 14.3.14 Fujitsu Sparclite 14.3.15 Tandem ST2000 14.3.16 Zilog Z8000 14.4 Architectures 14.4.1 A29K 14.4.2 Alpha 14.4.3 MIPS 15. Controlling GDB 15.1 Prompt 15.2 Command editing 15.3 Command history 15.4 Screen size 15.5 Numbers 15.6 Optional warnings and messages 15.7 Optional messages about internal happenings 16. Canned Sequences of Commands 16.1 User-defined commands 16.2 User-defined command hooks 16.3 Command files 16.4 Commands for controlled output 17. Using GDB under GNU Emacs 18. GDB Annotations 18.1 What is an Annotation? 18.2 The Server Prefix 18.3 Values 18.4 Frames 18.5 Displays 18.6 Annotation for GDB Input 18.7 Errors 18.8 Information on Breakpoints 18.9 Invalidation Notices 18.10 Running the Program 18.11 Displaying Source 18.12 Annotations We Might Want in the Future 19. The GDB/MI Interface Function and Purpose Notation and Terminology 19.1 GDB/MI Command Syntax 19.1.1 GDB/MI Input Syntax 19.1.2 GDB/MI Output Syntax 19.1.3 Simple Examples of GDB/MI Interaction 19.2 GDB/MI Compatibility with CLI 19.3 GDB/MI Output Records 19.3.1 GDB/MI Result Records 19.3.2 GDB/MI Stream Records 19.3.3 GDB/MI Out-of-band Records 19.4 GDB/MI Command Description Format 19.5 GDB/MI Breakpoint table commands 19.6 GDB/MI Data Manipulation 19.7 GDB/MI Program control 19.8 Miscellaneous GDB commands in GDB/MI 19.9 Stack manipulation commands in GDB/MI 19.10 GDB/MI Symbol Query Commands 19.11 GDB/MI Target Manipulation Commands 19.12 GDB/MI Thread Commands 19.13 GDB/MI Tracepoint Commands 19.14 GDB/MI Variable Objects 19.15 GDB/MI Draft Changes to Output Syntax 20. Reporting Bugs in GDB 20.1 Have you found a bug? 20.2 How to report bugs 21. Command Line Editing 21.1 Introduction to Line Editing 21.2 Readline Interaction 21.2.1 Readline Bare Essentials 21.2.2 Readline Movement Commands 21.2.3 Readline Killing Commands 21.2.4 Readline Arguments 21.2.5 Searching for Commands in the History 21.3 Readline Init File 21.3.1 Readline Init File Syntax 21.3.2 Conditional Init Constructs 21.3.3 Sample Init File 21.4 Bindable Readline Commands 21.4.1 Commands For Moving 21.4.2 Commands For Manipulating The History 21.4.3 Commands For Changing Text 21.4.4 Killing And Yanking 21.4.5 Specifying Numeric Arguments 21.4.6 Letting Readline Type For You 21.4.7 Keyboard Macros 21.4.8 Some Miscellaneous Commands 21.5 Readline vi Mode 22. Using History Interactively 22.1 History Expansion 22.1.1 Event Designators 22.1.2 Word Designators 22.1.3 Modifiers A. Formatting Documentation B. Installing GDB B.1 Compiling GDB in another directory B.2 Specifying names for hosts and targets B.3 configure options Index
Free software Contributors to GDB
2.1 Invoking GDB 2.1.1 Choosing files 2.1.2 Choosing modes 2.2 Quitting GDB 2.3 Shell commands
2.1.1 Choosing files 2.1.2 Choosing modes
3.1 Command syntax 3.2 Command completion 3.3 Getting help
4.1 Compiling for debugging 4.2 Starting your program 4.3 Your program's arguments 4.4 Your program's environment 4.5 Your program's working directory 4.6 Your program's input and output 4.7 Debugging an already-running process 4.8 Killing the child process 4.9 Debugging programs with multiple threads 4.10 Debugging programs with multiple processes
5.1 Breakpoints, watchpoints, and catchpoints 5.1.1 Setting breakpoints 5.1.2 Setting watchpoints 5.1.3 Setting catchpoints 5.1.4 Deleting breakpoints 5.1.5 Disabling breakpoints 5.1.6 Break conditions 5.1.7 Breakpoint command lists 5.1.8 Breakpoint menus 5.1.9 "Cannot insert breakpoints" 5.2 Continuing and stepping 5.3 Signals 5.4 Stopping and starting multi-thread programs
5.1.1 Setting breakpoints 5.1.2 Setting watchpoints 5.1.3 Setting catchpoints 5.1.4 Deleting breakpoints 5.1.5 Disabling breakpoints 5.1.6 Break conditions 5.1.7 Breakpoint command lists 5.1.8 Breakpoint menus 5.1.9 "Cannot insert breakpoints"
6.1 Stack frames 6.2 Backtraces 6.3 Selecting a frame 6.4 Information about a frame
7.1 Printing source lines 7.2 Searching source files 7.3 Specifying source directories 7.4 Source and machine code
8.1 Expressions 8.2 Program variables 8.3 Artificial arrays 8.4 Output formats 8.5 Examining memory 8.6 Automatic display 8.7 Print settings 8.8 Value history 8.9 Convenience variables 8.10 Registers 8.11 Floating point hardware
9.1 Switching between source languages 9.1.1 List of filename extensions and languages 9.1.2 Setting the working language 9.1.3 Having GDB infer the source language 9.2 Displaying the language 9.3 Type and range checking 9.3.1 An overview of type checking 9.3.2 An overview of range checking 9.4 Supported languages 9.4.1 C and C++ 9.4.1.1 C and C++ operators 9.4.1.2 C and C++ constants 9.4.1.3 C++ expressions 9.4.1.4 C and C++ defaults 9.4.1.5 C and C++ type and range checks 9.4.1.6 GDB and C 9.4.1.7 GDB features for C++ 9.4.2 Modula-2 9.4.2.1 Operators 9.4.2.2 Built-in functions and procedures 9.4.2.3 Constants 9.4.2.4 Modula-2 defaults 9.4.2.5 Deviations from standard Modula-2 9.4.2.6 Modula-2 type and range checks 9.4.2.7 The scope operators :: and . 9.4.2.8 GDB and Modula-2 9.4.3 Chill 9.4.3.1 How modes are displayed 9.4.3.2 Locations and their accesses 9.4.3.3 Values and their Operations 9.4.3.4 Chill type and range checks 9.4.3.5 Chill defaults
9.1.1 List of filename extensions and languages 9.1.2 Setting the working language 9.1.3 Having GDB infer the source language
9.3.1 An overview of type checking 9.3.2 An overview of range checking
9.4.1 C and C++ 9.4.1.1 C and C++ operators 9.4.1.2 C and C++ constants 9.4.1.3 C++ expressions 9.4.1.4 C and C++ defaults 9.4.1.5 C and C++ type and range checks 9.4.1.6 GDB and C 9.4.1.7 GDB features for C++ 9.4.2 Modula-2 9.4.2.1 Operators 9.4.2.2 Built-in functions and procedures 9.4.2.3 Constants 9.4.2.4 Modula-2 defaults 9.4.2.5 Deviations from standard Modula-2 9.4.2.6 Modula-2 type and range checks 9.4.2.7 The scope operators :: and . 9.4.2.8 GDB and Modula-2 9.4.3 Chill 9.4.3.1 How modes are displayed 9.4.3.2 Locations and their accesses 9.4.3.3 Values and their Operations 9.4.3.4 Chill type and range checks 9.4.3.5 Chill defaults
9.4.1.1 C and C++ operators 9.4.1.2 C and C++ constants 9.4.1.3 C++ expressions 9.4.1.4 C and C++ defaults 9.4.1.5 C and C++ type and range checks 9.4.1.6 GDB and C 9.4.1.7 GDB features for C++
9.4.2.1 Operators 9.4.2.2 Built-in functions and procedures 9.4.2.3 Constants 9.4.2.4 Modula-2 defaults 9.4.2.5 Deviations from standard Modula-2 9.4.2.6 Modula-2 type and range checks 9.4.2.7 The scope operators :: and . 9.4.2.8 GDB and Modula-2
::
.
9.4.3.1 How modes are displayed 9.4.3.2 Locations and their accesses 9.4.3.3 Values and their Operations 9.4.3.4 Chill type and range checks 9.4.3.5 Chill defaults
11.1 Assignment to variables 11.2 Continuing at a different address 11.3 Giving your program a signal 11.4 Returning from a function 11.5 Calling program functions 11.6 Patching programs
12.1 Commands to specify files 12.2 Errors reading symbol files
13.1 Active targets 13.2 Commands for managing targets 13.3 Choosing target byte order 13.4 Remote debugging 13.4.1 The GDB remote serial protocol 13.4.1.1 What the stub can do for you 13.4.1.2 What you must do for the stub 13.4.1.3 Putting it all together 13.4.1.4 Communication protocol 13.4.1.5 Using the gdbserver program 13.4.1.6 Using the gdbserve.nlm program 13.5 Kernel Object Display
13.4.1 The GDB remote serial protocol 13.4.1.1 What the stub can do for you 13.4.1.2 What you must do for the stub 13.4.1.3 Putting it all together 13.4.1.4 Communication protocol 13.4.1.5 Using the gdbserver program 13.4.1.6 Using the gdbserve.nlm program
13.4.1.1 What the stub can do for you 13.4.1.2 What you must do for the stub 13.4.1.3 Putting it all together 13.4.1.4 Communication protocol 13.4.1.5 Using the gdbserver program 13.4.1.6 Using the gdbserve.nlm program
gdbserver
gdbserve.nlm
14.1 Native 14.1.1 HP-UX 14.1.2 SVR4 process information 14.2 Embedded Operating Systems 14.2.1 Using GDB with VxWorks 14.2.1.1 Connecting to VxWorks 14.2.1.2 VxWorks download 14.2.1.3 Running tasks 14.3 Embedded Processors 14.3.1 AMD A29K Embedded 14.3.1.1 A29K UDI 14.3.1.2 EBMON protocol for AMD29K 14.3.1.3 Communications setup 14.3.1.4 EB29K cross-debugging 14.3.1.5 Remote log 14.3.2 ARM 14.3.3 Hitachi H8/300 14.3.3.1 Connecting to Hitachi boards 14.3.3.2 Using the E7000 in-circuit emulator 14.3.3.3 Special GDB commands for Hitachi micros 14.3.4 H8/500 14.3.5 Intel i960 14.3.5.1 Startup with Nindy 14.3.5.2 Options for Nindy 14.3.5.3 Nindy reset command 14.3.6 Mitsubishi M32R/D 14.3.7 M68k 14.3.8 M88K 14.3.9 MIPS Embedded 14.3.10 PowerPC 14.3.11 HP PA Embedded 14.3.12 Hitachi SH 14.3.13 Tsqware Sparclet 14.3.13.1 Setting file to debug 14.3.13.2 Connecting to Sparclet 14.3.13.3 Sparclet download 14.3.13.4 Running and debugging 14.3.14 Fujitsu Sparclite 14.3.15 Tandem ST2000 14.3.16 Zilog Z8000 14.4 Architectures 14.4.1 A29K 14.4.2 Alpha 14.4.3 MIPS
14.1.1 HP-UX 14.1.2 SVR4 process information
14.2.1 Using GDB with VxWorks 14.2.1.1 Connecting to VxWorks 14.2.1.2 VxWorks download 14.2.1.3 Running tasks
14.2.1.1 Connecting to VxWorks 14.2.1.2 VxWorks download 14.2.1.3 Running tasks
14.3.1 AMD A29K Embedded 14.3.1.1 A29K UDI 14.3.1.2 EBMON protocol for AMD29K 14.3.1.3 Communications setup 14.3.1.4 EB29K cross-debugging 14.3.1.5 Remote log 14.3.2 ARM 14.3.3 Hitachi H8/300 14.3.3.1 Connecting to Hitachi boards 14.3.3.2 Using the E7000 in-circuit emulator 14.3.3.3 Special GDB commands for Hitachi micros 14.3.4 H8/500 14.3.5 Intel i960 14.3.5.1 Startup with Nindy 14.3.5.2 Options for Nindy 14.3.5.3 Nindy reset command 14.3.6 Mitsubishi M32R/D 14.3.7 M68k 14.3.8 M88K 14.3.9 MIPS Embedded 14.3.10 PowerPC 14.3.11 HP PA Embedded 14.3.12 Hitachi SH 14.3.13 Tsqware Sparclet 14.3.13.1 Setting file to debug 14.3.13.2 Connecting to Sparclet 14.3.13.3 Sparclet download 14.3.13.4 Running and debugging 14.3.14 Fujitsu Sparclite 14.3.15 Tandem ST2000 14.3.16 Zilog Z8000
14.3.1.1 A29K UDI 14.3.1.2 EBMON protocol for AMD29K 14.3.1.3 Communications setup 14.3.1.4 EB29K cross-debugging 14.3.1.5 Remote log
14.3.3.1 Connecting to Hitachi boards 14.3.3.2 Using the E7000 in-circuit emulator 14.3.3.3 Special GDB commands for Hitachi micros
14.3.5.1 Startup with Nindy 14.3.5.2 Options for Nindy 14.3.5.3 Nindy reset command
14.3.13.1 Setting file to debug 14.3.13.2 Connecting to Sparclet 14.3.13.3 Sparclet download 14.3.13.4 Running and debugging
14.4.1 A29K 14.4.2 Alpha 14.4.3 MIPS
15.1 Prompt 15.2 Command editing 15.3 Command history 15.4 Screen size 15.5 Numbers 15.6 Optional warnings and messages 15.7 Optional messages about internal happenings
16.1 User-defined commands 16.2 User-defined command hooks 16.3 Command files 16.4 Commands for controlled output
18.1 What is an Annotation? 18.2 The Server Prefix 18.3 Values 18.4 Frames 18.5 Displays 18.6 Annotation for GDB Input 18.7 Errors 18.8 Information on Breakpoints 18.9 Invalidation Notices 18.10 Running the Program 18.11 Displaying Source 18.12 Annotations We Might Want in the Future
Function and Purpose Notation and Terminology 19.1 GDB/MI Command Syntax 19.1.1 GDB/MI Input Syntax 19.1.2 GDB/MI Output Syntax 19.1.3 Simple Examples of GDB/MI Interaction 19.2 GDB/MI Compatibility with CLI 19.3 GDB/MI Output Records 19.3.1 GDB/MI Result Records 19.3.2 GDB/MI Stream Records 19.3.3 GDB/MI Out-of-band Records 19.4 GDB/MI Command Description Format 19.5 GDB/MI Breakpoint table commands 19.6 GDB/MI Data Manipulation 19.7 GDB/MI Program control 19.8 Miscellaneous GDB commands in GDB/MI 19.9 Stack manipulation commands in GDB/MI 19.10 GDB/MI Symbol Query Commands 19.11 GDB/MI Target Manipulation Commands 19.12 GDB/MI Thread Commands 19.13 GDB/MI Tracepoint Commands 19.14 GDB/MI Variable Objects 19.15 GDB/MI Draft Changes to Output Syntax
19.1.1 GDB/MI Input Syntax 19.1.2 GDB/MI Output Syntax 19.1.3 Simple Examples of GDB/MI Interaction
19.3.1 GDB/MI Result Records 19.3.2 GDB/MI Stream Records 19.3.3 GDB/MI Out-of-band Records
20.1 Have you found a bug? 20.2 How to report bugs
21.1 Introduction to Line Editing 21.2 Readline Interaction 21.2.1 Readline Bare Essentials 21.2.2 Readline Movement Commands 21.2.3 Readline Killing Commands 21.2.4 Readline Arguments 21.2.5 Searching for Commands in the History 21.3 Readline Init File 21.3.1 Readline Init File Syntax 21.3.2 Conditional Init Constructs 21.3.3 Sample Init File 21.4 Bindable Readline Commands 21.4.1 Commands For Moving 21.4.2 Commands For Manipulating The History 21.4.3 Commands For Changing Text 21.4.4 Killing And Yanking 21.4.5 Specifying Numeric Arguments 21.4.6 Letting Readline Type For You 21.4.7 Keyboard Macros 21.4.8 Some Miscellaneous Commands 21.5 Readline vi Mode
21.2.1 Readline Bare Essentials 21.2.2 Readline Movement Commands 21.2.3 Readline Killing Commands 21.2.4 Readline Arguments 21.2.5 Searching for Commands in the History
21.3.1 Readline Init File Syntax 21.3.2 Conditional Init Constructs 21.3.3 Sample Init File
21.4.1 Commands For Moving 21.4.2 Commands For Manipulating The History 21.4.3 Commands For Changing Text 21.4.4 Killing And Yanking 21.4.5 Specifying Numeric Arguments 21.4.6 Letting Readline Type For You 21.4.7 Keyboard Macros 21.4.8 Some Miscellaneous Commands
22.1 History Expansion 22.1.1 Event Designators 22.1.2 Word Designators 22.1.3 Modifiers
22.1.1 Event Designators 22.1.2 Word Designators 22.1.3 Modifiers
B.1 Compiling GDB in another directory B.2 Specifying names for hosts and targets B.3 configure options
configure