几天前,我在我的目标板上看到了一个核心转储文件,我在我的/etc/配置文件中添加了"ulimit -c无限“,从而启用了内核转储生成。
但后来有人告诉我,这将只对从登录shell启动的程序生效,而不是对由systemd启动的进程/服务生效,并且在另一个位置设置。
因此,我更改了/etc/limits文件,并添加了ulimit -c unlimited
行,但仍然看不到核心转储文件。
我正在运行kill -9 $$
来生成分段错误,然后它将生成内核转储文件,就像它之前所做的那样。
我们尝试更改“/proc/sys/core/core_pattern”文件并显式运行ulimit -c unlimited
,但这还不够。
我们哪里出问题了?
发布于 2013-09-12 12:26:25
kill -9
不会生成核心文件。命令kill -l
给出了支持的信号列表。kill -6
或kill -SIGABRT
应该生成一个核心文件。以及大多数其他信号,如kill -BUS
、kill -SEGV
等。
发布于 2015-04-27 08:07:31
杀手-11总是为我工作。11是SIGSEGV (无效内存引用)
发布于 2015-07-17 22:48:49
您必须首先启用用户限制设置,以确保可以创建核心文件。
ulimit -c unlimited
应用程序用户必须在同一会话中启动应用程序之前运行。此设置是由应用程序继承的,因此,与启动应用程序之前一样,任何时候都会设置ulimit,这就是应用程序的ulimit设置(除非启动脚本对其进行更改)。
https://stackoverflow.com/questions/18354686
复制