I’m playing around with the Exception Debugging window as I write up the section of the docs on it. A couple follow on questions from the discussion here:
It appears that exceptions only get added to the window by default when it has been opened before the exception happens. Is this just a bug or the desired behavior?
I’m trying to keep the concept count low in the docs by describing this dialog in terms of other existing debugger features like “Trace Point” “Spy Point”. I’m curious about the term “Trace” in “Trace Not Caught” and “Trace Always”. It seems like this term is being used more descriptively than technically, meaning: this feature has nothing to do with trace mode (i.e. trace/0) and has nothing to do with trace points (i.e. trace/2). Here’s my impression of what is going on, please tell me what I got wrong:
Adding a row to the Exceptions window behaves similarly to setting a spy point on a predicate. For example, just like a spy point, if “trace always” is set for an exception and then the code throws the exception, Prolog will enter debug mode (even if it was off before) and bring up the graphical debugger [which is different from a spy point which would have used the console or graphical interface based on whether you used gtrace, etc].
After you have exited the debugger, the program will still be in debug mode. Also like a spy point, the exceptions dialog matches the exception anywhere in the code, not from a particular line where it gets thrown.
Am I right that there isn’t a command line interface, or am I missing it?
Are there predicates to enable and disable this exception trapping behavior?