Debugging with GDB Manual The GNU Source-Level Debugger (769148-001, March 2014)
-break-watch j
^done,wpt=number="2",exp="j"
(gdb)
-break-list
^done,BreakpointTable=nr_rows="2",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",alinment="-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="0x00029b4",func="call",
file="hello.c",line="9",times="1",bkpt=number="2",type="wathpoint",disp="keep",
enabled="y",addr="",what="j",times="0"]
(gdb)
-exec-continue
^running
(gdb)
*stopped,reason="watchpoint-trigger",wpt=number="2",exp="j",value=old="0",ne="17",
thread-id="1",frame=addr="0x000029bc",func="call",args=[],file="hello.c,line="10"
(gdb)
-break-list
^done,BreakpointTable=nr_rows="2",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",alinment="-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="0x00029b4",func="call",file="hello.c",
line="9",times="1",bkpt=number="2",type="wathpoint",disp="keep",enabled="y",addr="",
what="j",times="1"]
(gdb)
-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)
GDB/MI Data manipulation
This section describes the GDB/MI commands that manipulate data: examine memory and registers,
evaluate expressions, and so on.
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 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
GDB/MI Data manipulation 243