coredump不打印的问题

参考自:

https://www.cnblogs.com/hanyli/p/15352671.html
https://blog.youkuaiyun.com/cqbamboo/article/details/43970089

有时候运行程序的时候可能会直接死掉,只在终端留下一句(core dumped)
这个dump文件可以帮助我们调试,看到到底程序死哪了

理论上这个dump文件会生成在当前目录,但是经常都没有显示。
这个问题的原因有2个,一个是没有设置core file size的大小,我们可以通过
ulimit -c
指令查看当前的size设置的多少,然后通过
ulimit -c 1024 或者 ulimit -c unlimited
来设置他的大小为1024(不知道单位是啥,block?)或者无限制。

当然设置了后很可能还是找不到dump文件,这是因为文件目录没有设置,我们可以通过
cat /proc/sys/kernel/core_pattern 或者 /sbin/sysctl kernel.core_pattern
来查看设置的dump文件目录然后去里面找

当然可能还是找不到,我也不知道为啥。这时候可以手动设置到自己指定的目录下:
su #(要用root用户运行)
echo /mnt/sd/%e.%p.core > /proc/sys/kernel/core_pattern
就可以在自己设置的目录下面 /mnt/sd目录下面找到了

找到后我们可以通过
gdb 可执行程序(包括路径) 对应的corefile, 例如: 
gdb ./apps/build_disk_index ~/build_disk_inde.3679.core
查看报错的位置了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值