我正在使用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转储核心文件?
答案 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是有帮助的。