1

我正在使用 C 语言开发一个 PostgreSQL 扩展,它会出现段错误,所以我想查看我的 OS X Lion 机器上的核心转储文件。/cores但是,在我能找到的任何地方或其他任何地方都没有核心文件。似乎它们在系统中已启用,但大小限制为 0:

> sysctl kern.coredump               
kern.coredump: 1
> ulimit -c
0

我尝试ulimit -c unlimited在我用来启动和停止 PostgreSQL 的 shell 会话中进行设置,它似乎坚持:

> ulimit -c
unlimited

然而,无论我做什么,都没有核心文件。我从 PostgreSQL 开始pg_ctl -c,其中-c告诉 PostgreSQL 生成核心转储。但是系统什么都没有。如何让 Lion 转储核心文件?

4

1 回答 1

1

/cores/ 目录不一定存在于 Lion 中,如果不存在,您将无法获得核心。您应该能够设置 ulimit(如您所愿),运行 cat(1) 之类的程序,使用 SIGQUIT(控制反斜杠)退出并获得核心转储:

lion:~ user$ ulimit -c unlimited lion:~ user$ cat ^\ ^\ Quit: 3 (core dumped) lion:~ user$ ls -l /cores/ total 716584 -r-------- 1用户用户 366891008 Jun 21 23:35 core.1263 lion:~ user$

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

于 2012-06-22T05:54:18.693 回答