gdb调试

       以前经常听到别人说gdb调试,很高大尚。在日常的开发中,gdb确实很有用。gdb调试博大精深,非三言两语能说透,我们还是先从基础开始学起吧。

 

#include<stdio.h>

void test(int key)
{
      int a=key;
      int b=a+1;
      int *p=NULL;
      *p=5;
      printf("%d,%d",a,b);
}

int main()
{
      int key=2;
      test(key);
      
      return 0;
}


要生成调试信息必须加上 -g 选项,不加上 -g 选项生成的core都无法调试。之前我调试core没加 -g 选项把自己坑了,所以这里一定要注意。

生成core的2个条件:

1.ulimit -c unlimited

2.gcc/g++ -g

 

bt:查看堆栈信息

i locals:查看当前程序栈的局部变量

i args:查看当前程序栈的参数

i catch:查看当前程序中战帧的异常处理器

p a:打印变量的值

i register:查看当前寄存器的值。这个这里没有演示

quit:退出

 

l(list):查看程序源代码

r(run):从运行程序至第一个断点,没有断点则一直运行完

start:开始执行程序,停留在main函数第一行语句前等待命令

 

s(step):执行下一条语句,有函数则进入函数中

n(next):单步执行,不进入函数内部

 

set var:改变变量的值

 

finish:运行到当前函数为止,可以用来结束循环

 

参考地址:

http://blog.csdn.net/stpeace/article/details/51040073

http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盼盼编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值