protocol

# `debuggerp`

Debugger protocol.

Author: Paulo Moura
Version: 2.1
Date: 2016/10/23
Compilation flags:
`static`

(no dependencies on other entities)

## Public interface

### `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`

### `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.

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

### `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.

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

### `spy/1`

Sets a line number spy point or a predicate spy point or a list of spy points.

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

### `spying/1`

Enumerates, by backtracking, all defined line number and predicate 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 spy points and predicate 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, and context spy points.

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

### `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 interface

(none)

## Private predicates

(none)

## Operators

(none)

## Remarks

- Debugger help: Type the character “h” or the character “?” at a leashed port.
- Predicate spy point: Specified as a ground term Functor/Arity.
- Line number spy point: 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 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].

See also

debugger