linux gdb调试工具基础指令
程序员文章站
2022-06-03 22:46:46
...
-g 使用该参数编译可执行文件,得到调试表(内含调试信息)
例:gcc gdbtest.c -o gdbtest -g
gdb 执行文件(进入调试模式)
例: gdb gdbtest
l/list N:从第N行开始列出源码(不写N默认为1),根据源码指定行号设置断点 。
b N:在第N行设置断点
run/r:运行程序
n/next:下一条指令(会越过函数)
s/step:下一条指令(会进入函数)
例:
int a[10]={6,2,4,7,5,8,9,10,3,1};
selectsort(a);//在该行按下n,会进入for循环,按下s会进入selectsort()函数
for(int i=0;i<10;i++)
p/print i:查看某变量i的值。
例:
int a[10]={6,2,4,7,5,8,9,10,3,1};
selectsort(a);
for(int i=0;i<10;i++)//在该行 输入 p i ,会显示此时i的值为多少
continue:继续执行断点后续指令。
quit:退出当前调试
run:使用run查找段错误出现位置。
finish:结束当前函数调用,返回函数调用点
set args: 设置main函数命令行参数 (在 start、run 之前)
run 字串1 字串2 …: 设置main函数命令行参数
info b: 查看断点信息表
b 行数 条件:设置条件断点。
例:b 20 if i = 5
ptype a:查看变量a的类型。注:ptype只能用于查询该栈帧上的变量类型
bt:列出当前程序正存活着的栈帧。
frame: 根据栈帧编号,切换栈帧。
display:设置跟踪变量
undisplay:取消设置跟踪变量。 使用跟踪变量的编号。