使用正常 /etc/security/limits.conf 机制的用户的核心转储限制已被禁用:
# ulimit -a
core file size (blocks, -c) unlimited
但是,运行段错误测试表明没有核心被转储:
/tmp/a.out
Segmentation fault
没有“核心转储”消息。嗯。/etc/security/limits.conf 如下所示:
username - core unlimited
有人遇到过这种情况吗?这是 SLES 中的错误吗?谢谢。
答案1
核心转储已启用,但用于文件名的 core_pattern 指向不存在的目录。
这会导致核心转储悄然失败。
# cat /proc/sys/kernel/core_pattern
/cores/core.%p
# ls -la /cores
/bin/ls: /cores: No such file or directory
修复很简单:创建指定的目录,或相应地修改 sysctl.conf:
# mkdir /cores
# /tmp/a.out
Segmentation fault (core dumped)