:- protocol(debuggerp).
:- info([
version is 1.0,
date is 2000/7/24,
author is 'Paulo Moura',
comment is 'Debugging protocol similar to those found in most Prolog compilers.']).
:- public(trace/0).
:- mode(trace, one).
:- info(trace/0, [
comment is 'Starts tracing all message sending events.']).
:- public(notrace/0).
:- mode(notrace, one).
:- info(notrace/0, [
comment is 'Stops tracing.']).
:- public(debug/0).
:- mode(debug, one).
:- info(debug/0, [
comment is 'Activates spy points and starts debugging.']).
:- public(nodebug/0).
:- mode(nodebug, one).
:- info(nodebug/0, [
comment is 'Suspends spy points and stops debugging.']).
:- public(debugging/0).
:- mode(debugging, zero_or_one).
:- info(debugging/0, [
comment is 'True if the debugger is active.']).
:- public(init/0).
:- mode(init, one).
:- info(init/0, [
comment is 'Initializes debugger, turns debugging off and resets all spy points and streams.']).
:- public(stream/2).
:- mode(stream(?atom, ?stream), zero_or_more).
:- info(stream/2, [
comment is 'Current debugger input or ouput streams.',
argnames is ['Kind', 'Stream']]).
:- public(set_stream/2).
:- mode(set_stream(+atom, +stream), one).
:- info(set_stream/2, [
comment is 'Sets the debugger input or output stream.',
:- end_protocol.