c - 强制程序在 freebsd 上创建 coredump

标签 c operating-system freebsd coredump

在我的项目中,我添加了一个新模块,现在我的进程被信号 11 终止。 我想跟踪和了解问题,但 freebsd 没有生成 coredump 文件。 我将 sysctl 设置为:

sysctl -a | grep core
kern.corefile: /usr/core
kern.nodump_coredump: 1
kern.coredump: 1
kern.sugid_coredump: 1
debug.elf64_legacy_coredump: 1
debug.elf32_legacy_coredump: 1

我也设置了ulimit -c unlimited

我从我的代码中删除了所有关于信号的代码,如“sigaction(SIGTERM, &signal, &signal_old);” 因为不阻止内核生成核心转储。

为什么我仍然看不到任何核心转储?我缺少什么?

还有什么方法可以强制在 freebsd 上运行的程序创建 coredump,相当于 linux 中的 do_coredump()?

最佳答案

问题出在:

kern.corefile:/usr/core

类似下面的内容应该有所帮助:

sysctl -w kern.corefile = "%N.core"

关于c - 强制程序在 freebsd 上创建 coredump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16610626/

相关文章:

c - 在这种情况下如何正确使用 struct

c++ - 如何在正则表达式中匹配 '*'

python - 如何在 FreeBSD 中打开 PostgreSQL 的 psql 提示符?

linux - 如何使用脚本中的文件路径变量在 FreeBSD 中发送邮件?

c++ - 在 C 中的大型数组上使用 realloc 的段错误

对命令提示符、Visual Studio exe 和文本文件感到困惑?

c++ - 为什么我的 C++ 数组打印相同的值?

c++ - 如何判断函数是否使用系统调用

mysql - FreeBSD、MySQL、Perl、bash : intermittent blocking on named pipes?

c - C启动例程需要什么?