我正在努力在 nVidia Jetson TX1 SBC 上运行的 Ubuntu 14.04 LTS (ARM) 中启用核心转储。我做了所有常规操作,包括这里和这里根文件系统上有足够的空间,可以写入。应用程序确实不是设置了 suid 位。我还禁用了 ubuntu 的“apport”服务。以下是我设置的:
/etc/security/limits.conf:
* soft core unlimited
* hard core unlimited
内核核心设置:
$ cat /proc/sys/kernel/core_pattern
core
$ cat /proc/sys/kernel/core_uses_pid
1
ulimit 的输出:
$ ulimit -c
unlimited
开始我的流程后:
$ egrep "Units|core" /proc/$(pgrep my_app_name)/limits
Limit Soft Limit Hard Limit Units
Max core file size unlimited unlimited bytes
但是当应用程序出现段错误、中止或出现浮点异常时,不会生成任何核心。我错过了什么?
答案1
我能看到的唯一可能导致这种情况的原因是应用程序的当前工作目录对于正在运行的用户不可写入。