如何在mac上设置核心转储?

时间:2013-05-04 00:23:10

标签: java core ulimit dumping

我正在为动画程序编写代码,我遇到了问题。我需要设置核心转储。 NetBeans这样说:Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

如何开始核心转储?在终端或字符串args []中有什么东西吗?

注意:程序无法完全运行,因此我不知道发生了什么。

2 个答案:

答案 0 :(得分:2)

打开终端并执行命令

$ ulimit -c unlimited

在此终端中,现在通过命令行启动IDE Eclipse

$ /Path/To/Eclipse/Eclipse.app/Contents/MacOS/eclipse

但是,当程序运行时,这不是您的错误的解决方案。

答案 1 :(得分:0)

  问:你必须对发生的事情稍微详细一点,或者说明没有其他事情发生。但是,我认为,如果您尝试运行程序并且它失败了,那么您的JVM可能会在启动时崩溃。

     

答:没有任何反应,它的行为与代码中的语法错误完全相同,只是没有语法错误,它没有运行。

     

问:定义“不运行”。

     

答:它不会编译。


所以让我们直截了当。

  • 当您尝试编译NetBeans时,您的Java程序会崩溃。

  • 当NetBeans崩溃时,它说“无法编写核心转储......”等等。

我建议您忽略现在编写核心转储的问题。 (转储不会告诉你多少......除非你擅长读取转储。线程堆栈跟踪可能会提供一些提示。它们可能位于“hs_err_< ...>”文件中......是一个已创建。)

而是尝试找出导致问题的原因。

首先从命令行编译程序;例如使用javac命令并将类路径等设置为与在NetBeans中编译时相同。 (如果您有Ant或Maven构建配方,请从命令行运行那些...)

  • 如果有效,那么您正在使用的NetBeans版本中存在编译器错误。

  • 如果它出现编译错误,请修复它们并再次尝试,直到您的代码从命令行编译。一旦你有了编译的固定程序,再次在NetBeans中尝试它。如果可行,则诊断结果是NetBeans中存在由源代码中的特定错误触发的错误。但是你已经解决了这个问题。

  • 如果从命令行遇到编译器崩溃,代码中会有一些东西在两个平台上触发编译器错误。这可能很棘手。您需要逐步从代码中删除位以尝试确定原因。

如果您需要更多帮助,请发布导致问题的代码...最好在删除看起来不重要的位之后。