gdb下的一种core文件分析方法--设备端产生CORE文件,PC端分析CORE文件

注意core文件需要结合源码一起查看
这里的方法是在设备端产生CORE文件之后,在PC端分析CORE文件的堆栈信息

1:core文件设置

设备端可能默认不会产生core文件,需要设置一下

# 设置core文件在 /tmp 目录下
ulimit -c unlimited && echo '/tmp/%e-%s.core' >/proc/sys/kernel/core_pattern

2: 程序增加一个段错误函数

static void TestFault()
{
    int *ptr = NULL;
    ptr = 100;
    memset((void *)ptr,0,100);
    return 0;
}

// 初始化时候同步数据
Int32 InitParamStart()
{
    TestFault();
}

3:运行程序产生core文件

注意查看 Segmentation fault (core dumped) 是否有core文件; 如果没有core文件的话,则说明设置不成功
在这里插入图片描述

4:core文件分析

注意这里一定要使用程序编译时候使用gcc编译工具链的gdb可执行程序;不能用windows的gdb工具
在这里插入图片描述
其它的一些指令,参考普通的gdb

# 指定ec200a的gdb文件运行core文件
/home/ec200a/ec200a_linux/build_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-8.4.0_musl_eabi/gdb-10.1/gdb/gdb pmu_service
# core-file 加载  core 文件
core-file pmu_service-11.core
# bt或where 查看堆栈信息

在这里插入图片描述如果是库里面调用出错找不到源码的话,可能就会报 ??
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值