gdb调试命令

 

目录

gdb调试常用命令

完整示例

1. 启动调试

2. 显示当前的代码:l

3. 在某一行打断点:b 行号

4. 开始运行程序:r( run )

5. 逐步执行:s( step ) ,类似于VS中的F11

6. 重复上条命令:不输入任何命令,直接enter

7. 查看某个变量的变化:print 变量名

8. 查看变量的类型:whatis 变量名

9. 看函数的堆栈:bt

10. 结束调试:finish

11. 进入下一次调试:n( next )

12. 退出调试:q


 

 

gdb调试常用命令

编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o main

gdb中命令:

回车键:重复上一命令

(gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h

(gdb)run:重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r

(gdb)start:单步执行,运行程序,停在第一执行语句

(gdb)list:查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数),简写l

(gdb)set:设置变量的值

(gdb)next:单步调试(逐过程,函数直接执行),简写n

(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s

(gdb)backtrace:查看函数的调用的栈帧和层级关系,简写bt

(gdb)frame:切换函数的栈帧,简写f

(gdb)info:查看函数内部局部变量的数值,简写i

(gdb)finish:结束当前函数,返回到函数调用点

(gdb)continue:继续运行,简写c

(gdb)print:打印值及地址,简写p

(gdb)quit:退出gdb,简写q

 

(gdb)break+num:在第num行设置断点,简写b

(gdb)info breakpoints:查看当前设置的所有断点

(gdb)delete breakpoints num:删除第num个断点,简写d

(gdb)display:追踪查看具体变量值

(gdb)undisplay:取消追踪观察变量

(gdb)watch:被设置观察点的变量发生修改时,打印显示

(gdb)i watch:显示观察点

(gdb)enable breakpoints:启用断点

(gdb)disable breakpoints:禁用断点

(gdb)x:查看内存x/20xw 显示20个单元,16进制,4字节每单元

(gdb)run argv[1] argv[2]:调试时命令行传参

(gdb)set follow-fork-mode child#Makefile项目管理:选择跟踪父子进程(fork())

   core文件:先用$ ulimit -c 1024 开启core,当程序出错会自动生成core文件。调试时 gdb a.out core

完整示例

1. 启动调试

gcc -g test.c   // 编译文件,生成可执行程序,并且给文件加上调试信息
gdb a.out       // 开始启动调试

2. 显示当前的代码:l

另外:

l 函数名  // 显示这个函数的代码(10行)
如果想继续查看,继续输入该命令

3. 在某一行打断点:b 行号

4. 开始运行程序:r( run )

5. 逐步执行:s( step ) ,类似于VS中的F11

6. 重复上条命令:不输入任何命令,直接enter

7. 查看某个变量的变化:print 变量名

8. 查看变量的类型:whatis 变量名

9. 看函数的堆栈:bt

10. 结束调试:finish

11. 进入下一次调试:n( next )

12. 退出调试:q

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值