写代码总少不了程序触发段错误崩了的时候,以前使用其他版本Linux的时候,在ulimit -c设置为unlimits的时候就直接在当前文件夹下生成了core.pid文件,然后就直接可以用gdb <程序名> <core文件>开始调试了。
但在manjaro下程序崩了的时候发现core dump文件不知跑哪儿去了,在网上搜了一下没找到解决方法,于是跑到manjaro论坛上问了一下,不一会就得到了回复(社区活跃度真的好啊),下面记录一下解决方法:
- 在manjaro下,触发段错误的时候生成的核心转储文件的查看和调试需要使用coredumpctl命令进行。
- 使用man coredumpctl指令可查看相关manual介绍。
具体例子:
- 列出所有由foo程序产生的core dumps:
coredumpctl list foo
- 使用gdb调试最新的core dump:
coredumpctl debug
- 根据产生core dump的进程pid(pid)列出其相关信息:
coredumpctl info <pid>
- 将某个程序产生的core dump文件提取到指定文件中:
coredumpctl -o bar.coredump dump /usr/bin/bar