我有一个arm可执行文件[(Debug build)ELF 32位LSB可执行文件,ARM版本(SYSV)]进程在具有Linux OS的ARM Cortex A9目标上执行(KErnel 2.6.38.8)
该进程具有用户标识root groupid root
即使在获取SIGSEGV后进程崩溃,也没有生成核心文件。 现在我已经阅读了这个question以确保文件系统是可写的,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
答案 0 :(得分:1)
是否有任何内核配置/构建选项禁用核心创建?
隐藏在常规设置|嵌入式系统或常规设置|配置标准... 下,具体取决于您的Linux版本。符号值为ELF_CORE
,位于init/Kconfig。如果未启用,您将永远不会获得核心转储。
正如why coredump file is not generated中的隐藏评论所示。