Debugging with GDB (February 2008)

Table Of Contents
Chapter 21: The gdb/mi Interface 283
-exec-continue
^running
(gdb)
*stopped,reason="watchpoint-scope",wpnum="2",thread-id="1",frame=addr="0x000029ec",
func="main",args=[],file="hello.c",line="18"
(gdb)
-break-list
^done,BreakpointTable=nr_rows="1",nr_cols="6",hdr=[width="3",alignment="-1",
col_name="number",colhdr="Num",width="14",alignment="-1",col_name="type",colhdr="Type",
width="4",alignment="-1",col_name="disp",colhdr="Disp",width="3",alignment="-1",
col_name="enabled",colhdr="Enb",width="10",alignment="-1",col_name="addr",
colhdr="Address",width="40",alignment="2",col_name="what",colhdr="What"],
body=[bkpt=number="1",type="breakpoint",disp="keep",enabled="y",addr="0x000029b4",
func="call",file="hello.c",line="9",times="1"]
(gdb)
21.6 gdb/mi Data manipulation
This section describes the gdb/mi commands that manipulate data: examine memory
and registers, evaluate expressions, etc.
The -data-disassemble command
Synopsis
-data-disassemble
[ -s start-addr -e end-addr ]
| [ -f filename -l linenum [ -n lines ] ]
-- mode
Where:
start-addr
is the beginning address (or $pc)
end-addr
is the end address
filename
is the name of the file to disassemble
linenum is the line number to disassemble around
lines is the the number of disassembly lines to be produced. If it is -1, the whole
function will be disassembled, in case no end-addr is specified. If end-addr is
specified as a non-zero value, and lines is lower than the number of disassembly
lines between start-addr and end-addr, only lines lines are displayed; if lines
is higher than the number of lines between start-addr and end-addr, only the
lines up to end-addr are displayed.
mode is either 0 (meaning only disassembly) or 1 (meaning mixed source and disas-
sembly).