Linux  gdb调试

release 发行版      
debug  开发版本  可调试版本    添加了一些debug_*段   


源代码 ----》  可执行文件    默认的release          
          编译链接                    debug      gcc  -o  debug  main.c  -g
   
编译过程中加入debug信息:
 gcc -o main.c  -g
链接不会加入debug信息
gcc  -o   main   main.o

调试的对象:                   单步执行
main.c   main.o   debug(调试)


gdb debug 进入调试   
    
l(list)   显示源代码(默认显示main函数所在文件的源代码)
list filename.num    显示指定文件指定行附近的源代码
断点:
b(break)  linenum  给指定行添加断点
b  functionname  给指定函数添加断点
b filename:linenum  给指定文件指定添加断点
b  linenum if 条件    添加一个条件断点

Info b 显示断点信息
d  bpnum  删除断点
disable bpnum  将断点设置为无效
enable bpnum 将断点设置为有效

执行过程控制:
r (run) 启动调试
n(next)  执行下一步
s  进入函数中执行
finish  退出函数执行
c(continue)   继续运行  运行到下一个断点中
q(quit)   退出调试

各种查看

p(print)  valname  查看变量的值
p  &valname 查看便量的地址
p  *ptr   查看指针指向的地址存储的值

p   arr  显示数组所有元素
p   *ptrarr@num(num表示元素个数)    通过指向数组的指针显示所有元素

p struct_val   显示结构体变量中所有成员的值
p struct_val.a   显示结构体变量中某个成员的值
p ptr_struct->a   通过指针显示结构体变量中某个成员的值

p  functionname(a,b)  将函数测试运行

bt  显示函数调用栈(函数调用流程)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值