如何在OS X Lion上获得核心转储?

时间:2012-02-21 22:59:46

标签: postgresql segmentation-fault osx-lion core ulimit

我正在使用C语言中的PostgreSQL扩展段进行segfaults,所以我想查看我的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转储核心文件?

1 个答案:

答案 0 :(得分:1)

/ cores /目录不一定在Lion中,如果它不在那里,你就不会获得核心。你应该能够设置ulimit(就像你一样),运行像cat(1)这样的程序,用SIGQUIT(control-backslash)退出并得到一个coredump:

狮子:〜用户$ ulimit -c无限制 狮子:〜用户$猫 ^ \ ^ \ 退出:3(核心倾销) lion:~user $ ls -l / cores / 总计716584 -r -------- 1用户user 366891008 Jun 21 23:35 core.1263 lion:~user $

Yuji在http://developer.apple.com/library/mac/#technotes/tn2124/中建议的技术说明TN2124 https://stackoverflow.com/a/3783403/225077是有帮助的。