首次gdb调试

以下面的代码(见文末,第6行明显是非法访问)为例,分如下几步介绍gdb的使用:

目录

编译采用-g flag

运行和退出

bt(backtrace)调用堆栈回溯


编译采用-g flag

编译时,应加上-g 标识,否则回溯将不能显示具体的崩溃位置:

g++ main.cpp -g -o main.out

 否则调用gdb后,界面提示"No Debugging Symbols Found...",即使采用了bt回溯,也定位不了崩溃位置,只能笼统的定位在main.cpp(见红线所示):

运行和退出

用gdb ./main.out启动gdb 之后,输入r,启动程序。

输入q退出gdb

bt(backtrace)调用堆栈回溯

 输入bt进行回溯。下面是正常的调试效果(采用了-g标志),回溯到了main.cpp第六行,也就是非法访问之处。

附代码:

#include <stdio.h>

int main(void)
{
    char * p = NULL;
    printf("%s\n", p);

    return 0;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值