ubuntu20.04 如何生成core文件

目录

    • 1. 查看是否打开了coredump
    • 2.设置core文件存储路径

在网上找到一些答案,总结如下:

1. 查看是否打开了coredump

ulimit -c   //未设置之前
0

可以使用下面命令修改

ulimit -c 1024
ulimit -c unlimited    //大小不受限

但是这个只是针对当前这个连接,如果想要永久修改可以修改配置文件:
vim /etc/profile,然后添加上面的命令ulimit - c unlimited.然后执行source /etc/profile或者重启使刚刚的配置可以生效。

Ubuntu20.4 坑1:
这样修改并不能永久改变,因为在终端执行ulimit -c查看,并不是我们设置的结果。

2.设置core文件存储路径

打开文件 /etc/sysctl.conf ,添加以下内容:

kernel.core_pattern = /var/core/core_%e_%p   
kernel.core_uses_pid = 0   //是否加上pid

然后reboot。
这样看似完成了,但是被ubuntu server 20.04的core生成机制给坑了一把。所以还是生成不了。

cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c %d %P %E

ubuntu的服务apport.service。自动生成崩溃报告,官方为了自动收集错误的。这个玩意会导致core_pattern的设置不能一直有效,只要这个服务存在,系统重新启动后就会把core_pattern改为一个特定的值,直接导致coredump无法生成。

这个服务对我们来说,基本没用。修改/etc/default/apport文件,enabled 设置为0。这个时候再看一下:

cat /proc/sys/kernel/core_pattern
/var/core/core_%e_%p
# ./test
段错误 (核心已转储)
# cd /var/core
root@jqw-virtual-machine:/var/core# ls
core_test_2422

参考:
https://blog.csdn.net/qq_16019185/article/details/82620803
https://blog.csdn.net/qq_15328161/article/details/109085705

你可能感兴趣的:(奇奇怪怪,ubuntu,linux)