1. 进入 GDB 调试
方式 1
gdb a.out
方式 2
# 进入 gdb 调试环境
gdb
# 加载需要调试的程序
file a.out
2. 启动参数设置
# gdb cmd 下执行
set args paras
3. 常用命令
Gdb cmd | description |
---|---|
break/b | break 函数名 break 行号 break 文件名:函数名 break 文件名:行号 break +偏移量 break -偏移量 break *地址 |
delete | delete <断点id>:删除指定断点 delete:删除所有断点 clear clear 函数名 clear 行号 clear 文件名:行号 clear 文件名:函数名 |
disable | disable 断点编号 disable display 显示编号 disable mem 内存区域 |
enable | enable 断点编号 enable once 断点编号:该断点只启用一次, 程序运行到该断点并暂停后,该断点即被禁用。 enable delete 断点编号 enable display 显示编号 enable mem 内存区域 |
backtrace/bt | bt full :不仅显示backtrace,还显示局部变量bt N :显示开头N个栈帧bt full N |
print/p | 显示变量p/x val 十六进制显 示 |
info regs | 显示寄存器值p $寄存器 :显示寄存器内容p/x $寄存器 :十六进制显示寄存器内容 |
x/format addr | 显示地址内容x $pc :显示程序指针内容x/i $pc :显示程序指针汇编。x/10i $pc :显示程序指针之后10条指令。x/128wx 0xfc207000 :从0xfc20700开始以16进制打印128个word。 |
next/n step/s | 单步执行n :跳过函数s :进入函数 |
continue/c | 继续执行 |
watch | watch <表达式>:表达式发生变化时暂停运行awatch <表达式>:表达式被访问、改变是暂停执行rwatch <表达式>:表达式被访问时暂停执行 |
set | 通过 set <变量>=<表达式> 来修改变量的值 |
tui/- | TUI调试 TUI(TextUser Interface)为GDB调试的文本用户界面, 可以方便地显示源代码、汇编和寄存器文本窗口。 layout split :显示汇编代码窗口fs next :切换窗口 快捷键 ctrl+x+a :退出/进入 TUI 界面 |