在运行C程序时,它会显示“(core dumped)” ,但我在当前路径下找不到任何文件。
我已经设置并验证了ulimit:
我已经设置并验证了ulimit:
ulimit -c unlimited
ulimit -a
我还尝试查找名为“core”的文件,但没有得到核心转储文件?
请问哪里可以找到我的核心文件?
ulimit -c unlimited
ulimit -a
我还尝试查找名为“core”的文件,但没有得到核心转储文件?
请问哪里可以找到我的核心文件?
在我的情况下,原因是ulimit命令只对当前终端有效。
如果我在第一个终端设置了ulimit -c unlimited
,然后开启一个新的终端运行程序,当程序core dump时就不会生成核心文件。
您需要确认运行程序的终端的核心大小。
以下步骤适用于Ubuntu 20.04和Ubuntu 21.04:
sudo service apport stop
ulimit -c unlimited
ulimit -c unlimited
命令会在 "core dumped" 后,在当前目录下正确地生成 core 文件。
echo "core.%e.%p" > /proc/sys/kernel/core_pattern
并且
ulimit -c unlimited
ls -t $(cat /proc/sys/kernel/core_pattern | awk -F% '{print $1"*"}') 2>/dev/null | head -1
你当然可以修改该行上的最后一个-1
为例如-4
,以获取最后四个核心转储。
注意: 如果路径模式在最后一个/
之前使用变量或者在该目录下存在非内核转储文件,则预计无法正常工作。
coredumpctl -1 info
。 - undefined