kernel编译 openwrt_openwrt下使用coredump快速定位程序异常

在平时编码中有时候会遗漏对指针等内存操作的异常保护,而当设备访问异常内存空间时,操作系统会直接杀死改进程。当代码流程较多时,排查这类问题就比较痛苦,索性linux提供了coredump,改文件会保存进程被kill前调用的栈信息,根据这些信息我们可以快速的定位故障点。本文将介绍在openwrt中如果根据coredump来快速定位程序崩溃问题。

编写一个内存使用异常的程序:

编写一个helloworld程序,改程序直接访问空指针,改操作肯定会导致进程崩溃。

7544f89b64e7be76e5538755e2b74b3f.png

开启coredump功能:

openwrt中一般默认没有打开coredump功能,所以我们要先开启改功能,按照下面的配置开启之后,如果进程异常崩溃了,则会在/tmp目录下生成coredump文件。

ulimit -c unlimited

echo "/tmp/core-%e-%p-%t" > /proc/sys/kernel/core_pattern

执行helloworld程序:

从下图可以看出,我们已经生成了coredump文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值