Summary of GDB commands for x86-64 Systems
Command Effect
Starting:
gdb
gdb <file>
三鲜饺子馅Running and stopping
quit Exit gdb
run Run program
run 1 2 3 Run program with command-line arguments 1 2 3
kill Stop the program
quit Exit gdb大便金黄色
Ctrl-d Exit gdb
Note: Ctrl-C does not exit from gdb, but halts the current
gdb command
Breakpoints
break sum Set breakpoint at the entry to function sum
break *0x80483c3 Set breakpoint at address 0x80483c3
delete 1 Delete breakpoint 1
disable 1 Disable the breakpoint 1
(gdb numbers each breakpoint you create)
enable 1 Enable breakpoint 1
delete Delete all breakpoints
clear sum Clear any breakpoints at the entry to function sum Execution
stepi Execute one instruction
stepi 4 Execute four instructions
nexti Like stepi, but proceed
through function calls without stopping
step Execute one C statement
continue Resume execution until the next breakpoint
女人失眠的治疗方法until 3 Continue executing until program hits breakpoint 3 finish Resume execution until current function returns
call sum(1, 2) Call sum(1,2) and print return value
Examining code
disas Disasmble current function
disas sum Disasmble function sum
disas 0x80483b7 Disasmble function around 0x80483b7
disas 0x80483b7 0x80483c7 Disasmble code within specified address range
print /x $rip Print program counter in hex化石汤
print /d $rip Print program counter in decimal
print /t $rip Print program counter in binary
Examining data
print /d $rax Print contents of %rax in decimal
print /x $rax Print contents of %rax in hex
print /t $rax Print contents of %rax in binary
print /d (int)$rax Print contents of %rax in decimal after
sign-extending lower 32-bits.
鸡汁You need this to print 32-bit, negative
numbers stored in the lower 32 bits of
%rax. For example, if the lower 32-bits of
%rax store 0xffffffff, you will e
(gdb) print $rax
$1 = 4294967295
(gdb) print (int)$rax
$2 = -1
(gdb)
print 0x100 Print decimal reprentation of 0x100
print /x 555 Print hex reprentation of 555
print /x ($rsp+8) Print (contents of %rsp) + 8 in hex
print *(int *) 0xbffff890 Print integer at address 0xbffff890
print *(int *) ($rsp+8) Print integer at address %rsp + 8
print (char *) 0xbfff890 Examine a string stored at 0xbffff890
x/w 0xbffff890 Examine (4-byte) word starting at address
0xbffff890
x/w $rsp Examine (4-byte) word starting at address in $rsp x/wd $rsp Examine (4-byte) word starting at address in $rsp. Print in decimal
x/2w $rsp Examine two (4-byte) words starting at address兰亭序书法
in $rsp
x/2wd $rsp Examine two (4-byte) words starting at address
in $rsp. Print in decimal
x/g $rsp Examine (8-byte) word starting at address in $rsp. x/gd $rsp Examine (8-byte) word starting at address in $rsp. Print in decimal
x/a $rsp Examine address in $rsp. Print as offt from
previous global symbol.
x/s 0xbffff890 Examine a string stored at 0xbffff890
x/20b sum Examine first 20 opcode bytes of function sum
x/10i sum Examine first 10 instructions of function sum
(Note: the format string for the ‘x’ command has the general form
x/[NUM][SIZE][FORMAT] where
NUM = number of objects to display
文明6怎么联机SIZE = size of each object (b=byte, h=half-word, w=word,
g=giant (quad-word))
FORMAT = how to display each object (d=decimal, x=hex, o=octal, etc.)
If you don’t specify SIZE or FORMAT, either a default value, or the last
value you specified in a previous ‘print’ or ‘x’ command is ud.
)
Uful information
backtrace Print the current address and stack backtrace
where Print the current address and stack backtrace
info program Print current status of the program)
info functions Print functions in program
info stack Print backtrace of the stack)
take过去式
info frame Print information about the current stack frame
info registers Print registers and their contents
info breakpoints Print status of ur-ttable breakpoints
display /FMT EXPR Print expression EXPR using format FMT
every time GDB stops
undisplay Turn off display mode
help Get information about gdb