Prolog SWI序言:“;假;哪里

Prolog SWI序言:“;假;哪里,prolog,failure-slice,Prolog,Failure Slice,通常,当目标失败时,我会返回“false”,即目标不满足。 是否有办法使SWI Prolog打印失败子目标的谓词、行和/或序列号。 我不想跟踪整个程序,只想得到一些类似于其他编程语言的反馈。 我知道返回false不是错误,但在调试时,如果能有此反馈来查明问题,那就太好了。当然,如果可能的话 谢谢,也许吧 ...p1, p2, (p3;backtrace(10)), p4,... 在p3出现故障后开始跟踪也很有用: ...p1, p2, (p3;backtrace(10),trace), p4,

通常,当目标失败时,我会返回“false”,即目标不满足。 是否有办法使SWI Prolog打印失败子目标的谓词、行和/或序列号。 我不想跟踪整个程序,只想得到一些类似于其他编程语言的反馈。 我知道返回
false
不是错误,但在调试时,如果能有此反馈来查明问题,那就太好了。当然,如果可能的话

谢谢,也许吧

...p1, p2, (p3;backtrace(10)), p4,...
在p3出现故障后开始跟踪也很有用:

...p1, p2, (p3;backtrace(10),trace), p4,...

您可能还想考虑使用“失败切片”技术多次描述的@ false:它有.

还有,看看。您可以使用这里显示的代码来制作自己的“调试器”,它允许您(除其他外)完全执行您想要的操作