【发布时间】:2013-10-21 18:52:59
【问题描述】:
我正在运行我编写的 Prolog 程序(自然演绎中的证明测试器),当我运行程序 (run_all_tests('proof_tester.pl').) 时,程序运行时,会在控制台(我几乎没有时间看什么),然后关闭 SWI Prolog。它只是消失了,没有警告或错误消息或任何东西。这可能是什么?
【问题讨论】:
-
您可能使用递归到深度的谓词溢出堆栈和/或尝试使用超出生成列表大小的可用内存。
-
这显然不应该发生,并且可能是引擎或控制台代码中的错误。请在 SWI 邮件列表上报告。系统永远不应该像这样崩溃。如果它耗尽了资源,它应该抛出一个异常,就像@mbratch 提到的情况一样。
-
您确定程序崩溃了吗?在计算结束时停止执行的程序中是否可以调用
halt/0或halt/1?可能是输出应该被重定向到一个文件? -
程序结束时有一个“停止”,当我删除它时,程序可以运行并且没有使控制台崩溃。但是,对于同样的问题,我有另一个解决方案(也没有停止),它仍然使控制台崩溃。我有足够的时间看到 2-3 个红色警告,但没有别的。
-
也许您可以将程序输出重定向到一个文本文件并发布这些警告以获得进一步的建议?
标签: crash prolog swi-prolog