Print last choice point - Reply 3

Finally needed to use the * at the toplevel to find a choice-point.

Normally I work on Windows and just use gtrace/0 in the code to find such problems but for a current problem need to work on Ubuntu and don’t have the graphics (X-windows) installed and working so gtrace/0 is out.

Was going nuts looking for the choice-point so when the toplevel showed true instead of pressing the space bar or hitting enter just entered *, bingo, out comes the call stack and identifies the predicate with the choice-point.

Turns out the code was using _ with setof/3 in the goal instead of using existential (caret) operator (^),

Choice-point version

setof(A,info(A,_),As)

No choice-point version

setof(A,[B]^info(A,B),As)
1 Like