连接远程调试
target remote localhost:1234
查看内存
x/<n/f/u> <addr>
x /8xb 0xffff80000002fff0
# 以16进制方式查看0xffff80000002fff0处8字节内容
n
从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。
f
x
按十六进制格式显示变量d
按十进制格式显示变量u
按十十进制格式显示无符号变量o
按十八进制格式显示变量t
按十二进制格式显示变量a
按十十六进制格式显示变量i
指令地址格式c
按字符格式显示变量f
按浮点数格式显示变量
u
表示一个地址单元的长度
b
表示单字节h
表示双字节w
表示四字节g
表示八字节
断点
break 16 # 在源程序第16行
break func # 在函数func()入口处
break *address # 在地址address处
查看断点信息
info break # 查看断点信息
清除断点
delete n # 清除n号断点
运行程序
r/run
单条语句调试
n/next
继续运行程序
c/continue
打印变量的值
p i
print i
查看函数堆栈
bt
退出GDB
q
暂停
ctrl+c
单步运行
si/ni
查看当前寄存器和断点
info reg/registers
info b/break
查看当前执行以及之后的汇编指令
display /8i $pc # 8行
display /10i $pc # 10行
layout
layout src
:显示源代码窗口layout asm
:显示汇编窗口layout regs
:显示源代码/汇编和寄存器窗口layout split
:显示源代码和汇编窗口layout next
:显示下一个layoutlayout prev
:显示上一个layoutCtrl + L
:刷新窗口Ctrl + x,再按1
:单窗口模式,显示一个窗口Ctrl + x,再按2
:双窗口模式,显示两个窗口Ctrl + x,再按a
:回到传统模式,即退出layout,回到执行layout之前的调试窗口。