2

我有一个 arm 可执行文件[(调试构建)ELF 32 位 LSB 可执行文件,ARM 版本(SYSV)] 进程在具有 Linux 操作系统(KErnel 2.6.38.8)的 ARM Cortex A9 目标上执行

该进程有用户 id root groupid root

即使进程在获得 SIGSEGV 后崩溃,也没有生成核心文件。现在我已经阅读了这个问题,以确保它的文件系统是可写的,ulimit -c 是无限的,用户是 root 并且有权限,但仍然缺少一些东西。

以下是我的流程和系统的某些变量的一些输出,与核心文件创建相关:

cat /proc//coredump_filter 是00000033

cat /proc/sys/kernel/core_pattern 是核心

cat /proc/sys/kernel/core_uses_pid 为0

我已经尝试了一切,但被难住了。

是否有任何内核配置/构建选项禁用核心创建?

还有其他指针吗?

编辑: 我做了如下简单的测试,它创建了一个核心文件,但我的进程崩溃仍然没有转储核心文件。

sleep 20 &
killall -SIGSEGV sleep
4

1 回答 1

1

是否有任何内核配置/构建选项禁用核心创建?

它隐藏在General Setup|Embedded SystemGeneral Setup|Configure standard...下,具体取决于您的 Linux 版本。符号值是ELF_CORE并且它在init/Kconfig中。如果未启用,您将永远不会获得核心转储。

正如在为什么不生成 coredump 文件的隐藏评论中所建议的那样。

于 2013-10-17T17:44:27.167 回答