Yes, the usual trace/0 and spy points abilities are available http://www.gprolog.org/manual/html_node/gprolog013.html
Here is a simple example $ gprolog GNU Prolog 1.4.5 (32 bits) Compiled Dec 3 2020, 00:37:14 with gcc By Daniel Diaz Copyright (C) 1999-2020 Daniel Diaz | ?- [user]. compiling user for byte code... something(A):- something_else(A). something_else(A):- A is 2 + 2. user compiled, 2 lines read - 414 bytes written, 19475 ms (10 ms) yes | ?- spy(something_else). Spypoint placed on something_else/1 The debugger will first leap -- showing spypoints (debug) (1 ms) yes {debug} | ?- something(X). + 2 2 Call: something_else(_23) ? 3 3 Call: _23 is 2+2 ? 3 3 Exit: 4 is 2+2 ? + 2 2 Exit: something_else(4) ? 1 1 Exit: something(4) ? X = 4 (1 ms) yes {debug}