You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Swi-prolog在CLI模式下出错时自动显示完整backtrace?

SWI-Prolog CLI 报错自动输出完整回溯方案

SWI-Prolog原生支持CLI模式下出错自动打印回溯栈,不需要依赖GUI调试工具,可通过以下方式开启:

方法1:单次运行临时开启

修改你的启动命令,在加载业务代码后、执行目标前新增设置回溯标志的逻辑,示例如下:
原来的运行命令:
swipl -f test.pl -g test(X)
修改后开启自动回溯的命令:
swipl -f test.pl -g "set_prolog_flag(backtrace_on_error, true)" -g test(X)
开启后程序运行触发报错时,会直接在终端输出完整调用栈信息。

方法2:全局永久生效

将回溯开启配置写入SWI-Prolog的全局初始化文件,后续所有CLI启动的实例都会默认开启报错自动回溯:

  • Linux/macOS 系统:将 set_prolog_flag(backtrace_on_error, true). 写入 ~/.swiplrc 文件
  • Windows 系统:将 set_prolog_flag(backtrace_on_error, true). 写入 %APPDATA%\swi-prolog\swipl.ini 文件

可选配置

如果默认回溯深度不足,导致深层调用栈被截断,可以额外设置回溯最大深度,示例如下(设置最大输出100层调用栈):
set_prolog_flag(backtrace_depth, 100).
你可以根据自己的代码复杂度调整对应的数值。

内容的提问来源于stack exchange,提问作者asker of prophecy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:57:05