gdb入门命令
这是gdb的入门指令,我本人也是新手,想通过写博客来提高自己的能力,希望能帮助到有需要的人,也希望有人可以指导。
我觉得学习gdb就要多练,不练的话话很快就会忘记那些命令,所以在这里列出这些命令是想大家一起,遇到想知道的命令就去谷歌。
简单命令一:
- start:停在main函数后的第一条语句;
- b (break):b+行号或者函数名,设置断点;
- r (run):运行函数,如果没有其它设置,和普通的运行一样,设置了断点会停在断点处;
- bt (backtrace): 查看各级函数调用及参数;
- f (frame): 选择栈帧;
- finish: 结束当前函数;
- i (info) locals: 列出当前函数的局部变量;
- l (list):列出源代码,从main开始,每次10行,可以用l 1 从文本开始处开始;
- n (next):执行下一条语句,如果是函数调用,不进入函数;
- s (step):执行下一条语句,进入函数;
- p (print):打印变量,包括数组;打印时可以使用C的运算符,如sizeof(i),(int)a
- q (quit):退出调试;
- set var:修改变量的值(eg:set var sum = 0);
简单命令二:
- break:break 可以加条件,break … if…
- info b:列出断点;
- delete breakpoint 断点号:删除断点;
- disable breakpoints 断点号:禁用断点;
- enable 断点号:启用断点;
- c (continue):继续执行,遇到断点停下来;
- display 变量:跟踪变量,每次停下来都显示它的值;
- undisplay 变量:取消跟踪;
简单命令三:
- watch :设置观察点,当观察点的值改变时,程序停下来;
- info watchpoints:列出当前观察点;
- x:打印储存单元信息(x/7bx:7表示打印七组,b :表示每个字节一组,x表示十六进制表示;
- p *a@n:打印以指针为首地址的数组,n代表数组元素个数。
- ptype a:打印一个变量的类型。