我正在使用 C 语言开发一个存在段错误的 PostgreSQL 扩展,因此我想查看我的 OS X Lion 机器上的核心转储文件。但是,在
/cores
或我能找到的其他任何地方都没有核心文件。看起来它们在系统中已启用,但大小限制为 0:
> sysctl kern.coredump
kern.coredump: 1
> ulimit -c
0
我尝试在用于启动和停止 PostgreSQL 的 shell 会话中设置
ulimit -c unlimited
,它似乎坚持了下来:
> ulimit -c
unlimited
但无论我做什么,都没有核心文件。我用
pg_ctl -c
启动 PostgreSQL,其中 -c
告诉 PostgreSQL 生成核心转储。但系统什么都没有。如何让 Lion 转储核心文件?
/cores/ 目录不一定存在于 Lion 中,如果不存在,您将无法获得核心。您应该能够设置 ulimit(如您所愿),运行类似 cat(1) 的程序,使用 SIGQUIT(控制反斜杠)退出并获取核心转储:
lion:~ user$ ulimit -c 无限 狮子:~用户$猫 ^\ ^\ 退出:3(核心转储) 狮子:〜用户$ ls -l /核心/ 总计 716584 -r-------- 1 用户 用户 366891008 六月 21 23:35 core.1263 狮子:~用户$
技术说明 TN2124 http://developer.apple.com/library/mac/#technotes/tn2124/ 正如 Yuji 在 https://stackoverflow.com/a/3783403/225077 中建议的那样,很有帮助。