欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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:取消设置跟踪变量。 使用跟踪变量的编号。