protocol

debuggerp

Debugger protocol.

Availability:
logtalk_load(debugger(loader))
Author: Paulo Moura
Version: 3:0:0
Date: 2023-04-26
Compilation flags:
static
Dependencies:
(none)
Remarks:
  • Debugger help: Type the character h (condensed help) or the character ? (extended help) at a leashed port.

  • Predicate spy point: Specified as a ground term Functor/Arity.

  • Non-terminal spy point: Specified as a ground term Functor//Arity.

  • Line number spy point (aka breakpoint): Specified as an Entity-Line term with both Entity and Line bound. Line must be the first source file line of an entity clause.

  • Leash port shorthands: none - [], loose - [fact,rule,call], half - [fact,rule,call,redo], tight - [fact,rule,call,redo,fail,exception], and full - [fact,rule,call,exit,redo,fail,exception].

Inherited public predicates:
(none)

Public predicates

reset/0

Resets all debugging settings, including spy points and leashed ports, and turns off debugging.

Compilation flags:
static
Mode and number of proofs:
reset - one
See also:

debug/0

Starts debugging for all defined spy points.

Compilation flags:
static
Mode and number of proofs:
debug - one

nodebug/0

Stops debugging for all defined spy points. Also turns off tracing. Does not remove defined spy points.

Compilation flags:
static
Mode and number of proofs:
nodebug - one
See also:

debugging/0

Reports current debugging settings, including spy points.

Compilation flags:
static
Mode and number of proofs:
debugging - one

debugging/1

Enumerates, by backtracking, all entities compiled in debug mode.

Compilation flags:
static
Template:
debugging(Entity)
Mode and number of proofs:
debugging(?entity_identifier) - zero_or_more

trace/0

Starts tracing all calls compiled in debug mode.

Compilation flags:
static
Mode and number of proofs:
trace - one

notrace/0

Stops tracing of calls compiled in debug mode. Debugger will still stop at defined spy points.

Compilation flags:
static
Mode and number of proofs:
notrace - one

spy/1

Sets a line number spy point, a predicate spy point, a non-terminal spy point, or a list of spy points. Fails if a spy point is invalid.

Compilation flags:
static
Template:
spy(SpyPoint)
Mode and number of proofs:
spy(@spy_point) - zero_or_one
spy(@list(spy_point)) - zero_or_one

spying/1

Enumerates, by backtracking, all defined line number, predicate, and non-terminal spy points.

Compilation flags:
static
Template:
spying(SpyPoint)
Mode and number of proofs:
spying(?spy_point) - zero_or_more

spy/4

Sets a context spy point.

Compilation flags:
static
Template:
spy(Sender,This,Self,Goal)
Mode and number of proofs:
spy(@term,@term,@term,@term) - one

spying/4

Enumerates, by backtracking, all defined context spy points.

Compilation flags:
static
Template:
spying(Sender,This,Self,Goal)
Mode and number of proofs:
spying(?term,?term,?term,?term) - zero_or_more

nospy/1

Removes all matching line number, predicate, and non-terminal spy points.

Compilation flags:
static
Template:
nospy(SpyPoint)
Mode and number of proofs:
nospy(@var) - one
nospy(@spy_point) - one
nospy(@list(spy_point)) - one

nospy/4

Removes all matching context spy points.

Compilation flags:
static
Template:
nospy(Sender,This,Self,Goal)
Mode and number of proofs:
nospy(@term,@term,@term,@term) - one

nospyall/0

Removes all line number, predicate, non-terminal, and context spy points.

Compilation flags:
static
Mode and number of proofs:
nospyall - one
See also:

leash/1

Sets the debugger leash ports using an abbreviation (none, loose, half, tight, or full) or a list of ports (valid ports are fact, rule, call, exit, redo, fail, and exception).

Compilation flags:
static
Template:
leash(Ports)
Mode and number of proofs:
leash(+atom) - one
leash(+list(atom)) - one

leashing/1

Enumerates, by backtracking, all leashed ports (valid ports are fact, rule, call, exit, redo, fail, and exception).

Compilation flags:
static
Template:
leashing(Port)
Mode and number of proofs:
leashing(?atom) - zero_or_more

Protected predicates

(none)

Private predicates

(none)

Operators

(none)

See also

debugger