Loading

开启core dump崩溃记录

背景

程序偶发崩溃,而core dump无法通过log记载,需要系统记录core file

方法

开启无限制大小的core文件记录

ulimit -c unlimited

回放

使用gdb对崩溃内存进行复盘bt查看堆栈,l查看对应代码

gdb ${path_to_ur_app} core
(gdb) bt
#0  0x0000007fa15064f8 in ?? ()
#1  0x0000007fa1506484 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) l 1

传参

使用core的同时需要传入参数时命令有所改变

gdb --core=./core --args ./app -v -i ~/config.yaml -c 1

注意

某些系统(如 Ubuntu 18.04)默认启用apport无法产生core文件需要手动关闭服务后ulimit

sudo service apport stop
ulimit -c unlimited
# open a new session for test
bash
# trigger a core dump to verify
kill -11 $$
# now core file should be seen in $PWD
ls core
posted @ 2021-07-02 17:06  azureology  阅读(343)  评论(0编辑  收藏  举报