【发布时间】:2010-12-22 18:02:17
【问题描述】:
我做了 ulimit -c unlimited / 一些数字 proc ... core_pattern 是核心 我的rootfs和应用程序都是调试版本[虽然不是内核] 知道为什么我无法在 kill -SIGABRT/SEGV pid 上获取核心转储
谢谢 Furion。
【问题讨论】:
-
我在程序中使用了 prctl,现在一切都很好...... :)
我做了 ulimit -c unlimited / 一些数字 proc ... core_pattern 是核心 我的rootfs和应用程序都是调试版本[虽然不是内核] 知道为什么我无法在 kill -SIGABRT/SEGV pid 上获取核心转储
谢谢 Furion。
【问题讨论】:
您可以尝试如下使用 gdb 创建核心吗?
$ gdb --pid=1234
(gdb) gcore
Saved corefile core.1234
(gdb) detatch
gdb 不关心设置。 如果你想知道什么是分离。 由于您已将进程附加到 gdb,因此使用 detatch 命令使用 gdb 控件将其分离
【讨论】:
【讨论】:
确保进程的当前目录 (getcwd()) 可被进程写入,并且包含足够的空间来保存核心转储文件。
【讨论】:
也许有问题的应用程序本身会改变核心转储大小?
【讨论】:
我在程序中使用 prctl 显式启用核心转储(听起来像是脚本正在禁用核心转储),现在一切都很好
【讨论】: