gdb 可执行文件 -dui -q 加上q之后不弹出文字说明
list(l) 10 显示第10行代码
list(l) 10, 20 显示10-20行代码
b 10 在第十行加一个断点
info breakpoints(b) 显示所有断点信息
delete(d) breakpoints 删除所有断点
delete(d) 1 删除编号为1的断点,注意不是行数
enable breakpoints(b) 使能所有断点
disable breakpoints(b) 使所有断点无效
enable breakpoionts(b) + 编号 使能编号断点
disable breakpoionts(b) + 编号 使编号断点无效
n(next) 逐过程
s(step) 逐语句
finish 跳出当前函数,回到调用位置
util 跳过当前循环
util +行号 跳到指定行号位置
c(continue) 执行到下一个断点
bt(backtraces)/where 显示当前运行的堆栈列表
up/down 改变堆栈显示的深度
display +变量名 追踪变量
print(p) +变量名/函数名 一次性打印某个变量当前值或者调用某个函数得到返回值
whatis +变量名/函数名 查询变量或者函数
info +函数名 查询函数
info locals 显示当前堆栈页的所有变量
layout:用于分割窗口,可以一边查看代码,一边测试:
layout src:显示源代码窗口
layout asm:显示反汇编窗口
layout regs:显示源代码/反汇编和CPU寄存器窗口
layout split:显示源代码和反汇编窗口
Ctrl + L:刷新窗口
quit(q) 退出GDB