如何在 OS X 上启用完整的核心转储?

Posted

技术标签:

【中文标题】如何在 OS X 上启用完整的核心转储?【英文标题】:How to enable full coredumps on OS X? 【发布时间】:2010-02-05 12:47:18 【问题描述】:

看起来 OS X (10.6) 默认不生成编码转储。

使用ulimit -c unlimited 不是一个好的解决方案,因为 ulimit 确实在环境变量中设置了限制。这仅适用于从执行 ulimit 的 shell 执行的控制台应用程序。如果你有一个 gui 应用程序,这将不起作用。

【问题讨论】:

【参考方案1】:

您可以启用核心转储,然后使用 open 从命令行启动您的 GUI 应用程序。

$ ulimit -c unlimited
$ open /Applications/Address\ Book.app

我刚刚查看了TN2124,它提出了类似的方法,只是不使用 open 而是直接启动应用程序,例如

$ ulimit -c unlimited
$ /Applications/TextEdit.app/Contents/MacOS/TextEdit

【讨论】:

这并不总是有效,请检查***.com/questions/135688/… 该讨论似乎是关于继承环境变量的。试试上面的 TN2124 技术,看看它是否适合你。

以上是关于如何在 OS X 上启用完整的核心转储?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建 Mac OS 应用程序的内存转储

OS X 上是不是有 coredump_filter 用于核心转储

如何在 montavista linux 上为守护进程启用核心转储?

如何在 Mac OS X Snow Leopard 上启用 mysqli?

如何从核心转储文件中识别导致崩溃的完整命令

无法写入核心转储。默认情况下,在 Windows 的客户端版本上不启用小型转储