BUG: internal error in GUI debugger

I’m seeing this in both 10.1.5 & 10.1.7 when stepping through code with the GUI debugger. The initial gspy breakpoint is taken OK, but this happens after the first ‘step into’:

[INTERNAL ERROR: Diff:
'.'(_, roots, A),
'.'(A, patterns, _).
*** <->
'.'(_, roots, _).

Different text depending on what I’m debugging, but the overall pattern is the same. it’s coming from unify_term/2 in prolog_clause.pl but as I’m not sure what that is doing I’m not sure what the exact problem is.

The non-GUI debugger (i.e. spy) seems to be OK.

If it helps, these two strings look like they are dict keys.

Please share the code that triggers that (as well as where to spy and other relevant details).

I can’t provide the code but I’ll see if I can come up with a reproducer. It seems to happen when you are calling a predicate that takes a dict as an argument, and on the initial step into the predicate.

I burned through some tokens and generated the attached reproducer. I’ve provided the :robot:'s analysis of the issue, I make absolutely no claims about its correctness :grinning_face_with_smiling_eyes: but the code reproduces the bug,

gspy_dict.pl (1.4 KB)