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

问题描述 投票:0回答:1

我正在使用 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 转储核心文件?

postgresql segmentation-fault osx-lion coredump ulimit
1个回答
1
投票

/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 中建议的那样,很有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.