Debugging with GDB (February 2008)

Table Of Contents
x Debugging with GDB
20 GDB Annotations . . . . . . . . . . . . . . . . . . . . . . 261
20.1 What is an annotation?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
20.2 The server prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
20.3 Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
20.4 Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
20.5 Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
20.6 Annotation for GDB input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
20.7 Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
20.8 Information on breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
20.9 Invalidation notices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
20.10 Running the program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
20.11 Displaying source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
20.12 Annotations We Might Want in the Future. . . . . . . . . . . . 268
21 The gdb/mi Interface . . . . . . . . . . . . . . . . . . . 269
Function and purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Notation and terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
21.1 gdb/mi Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
21.1.1 gdb/mi Input syntax . . . . . . . . . . . . . . . . . . . . . . . . 269
21.1.2 gdb/mi Output syntax . . . . . . . . . . . . . . . . . . . . . . 270
21.1.3 Simple examples of gdb/mi interaction. . . . . . . . 272
21.2 gdb/mi compatibility with CLI . . . . . . . . . . . . . . . . . . . . . . . 272
21.3 gdb/mi output records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
21.3.1 gdb/mi result records . . . . . . . . . . . . . . . . . . . . . . . 273
21.3.2 gdb/mi stream records . . . . . . . . . . . . . . . . . . . . . . 273
21.3.3 gdb/mi out-of-band records . . . . . . . . . . . . . . . . . . 273
21.4 gdb/mi command description format . . . . . . . . . . . . . . . . . . 274
21.5 gdb/mi breakpoint table commands . . . . . . . . . . . . . . . . . . . 275
21.6 gdb/mi Data manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
21.7 gdb/mi program control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
21.8 Miscellaneous GDB commands in gdb/mi. . . . . . . . . . . . . . 304
21.9 gdb/mi Stack Manipulation Commands . . . . . . . . . . . . . . . 306
21.10 gdb/mi Symbol query commands . . . . . . . . . . . . . . . . . . . . 311
21.11 gdb/mi Target Manipulation Commands . . . . . . . . . . . . . 314
21.12 gdb/mi thread commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
21.13 gdb/mi tracepoint commands. . . . . . . . . . . . . . . . . . . . . . . . 321
21.14 gdb/mi variable objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
22 Reporting Bugs in GDB . . . . . . . . . . . . . . . . 327
22.1 Have you found a bug? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
22.2 How to report bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Appendix A Installing GDB . . . . . . . . . . . . . . . . 331
A.1 Compiling GDB in another directory . . . . . . . . . . . . . . . . . . . 332
A.2 Specifying names for hosts and targets . . . . . . . . . . . . . . . . . 333
A.3 configure options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334