.. index:: debugger
.. _debugger/0:

.. rst-class:: right

**object**

``debugger``
============

Command-line debugger based on an extended procedure box model supporting execution tracing and spy points.

| **Availability:** 
|    ``logtalk_load(debugger(loader))``

| **Author:** Paulo Moura
| **Version:** 6:1:1
| **Date:** 2023-11-23

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Implements:**
|    ``public`` :ref:`debuggerp <debuggerp/0>`
| **Provides:**
|    :ref:`logtalk::debug_handler_provider/1 <logtalk/0::debug_handler_provider/1>`
|    :ref:`logtalk::debug_handler/2 <logtalk/0::debug_handler/2>`
| **Uses:**
|    :ref:`logtalk <logtalk/0>`

| **Remarks:**
|    (none)

| **Inherited public predicates:**
|     :ref:`debuggerp/0::debug/0`  :ref:`debuggerp/0::debugging/0`  :ref:`debuggerp/0::debugging/1`  :ref:`debuggerp/0::leash/1`  :ref:`debuggerp/0::leashing/1`  :ref:`debuggerp/0::nodebug/0`  :ref:`debuggerp/0::nospy/1`  :ref:`debuggerp/0::nospy/4`  :ref:`debuggerp/0::nospyall/0`  :ref:`debuggerp/0::notrace/0`  :ref:`debuggerp/0::reset/0`  :ref:`debuggerp/0::spy/1`  :ref:`debuggerp/0::spy/4`  :ref:`debuggerp/0::spying/1`  :ref:`debuggerp/0::spying/4`  :ref:`debuggerp/0::trace/0`  

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

(no local declarations; see entity ancestors if any)

Protected predicates
--------------------

(no local declarations; see entity ancestors if any)

Private predicates
------------------

.. index:: debugging_/0
.. _debugger/0::debugging_/0:

``debugging_/0``
^^^^^^^^^^^^^^^^

True iff debug is on.

| **Compilation flags:**
|    ``dynamic``

| **Mode and number of proofs:**
|    ``debugging_`` - ``zero_or_one``


------------

.. index:: tracing_/0
.. _debugger/0::tracing_/0:

``tracing_/0``
^^^^^^^^^^^^^^

True iff tracing is on.

| **Compilation flags:**
|    ``dynamic``

| **Mode and number of proofs:**
|    ``tracing_`` - ``zero_or_one``


------------

.. index:: skipping_/0
.. _debugger/0::skipping_/0:

``skipping_/0``
^^^^^^^^^^^^^^^

True iff skipping.

| **Compilation flags:**
|    ``dynamic``

| **Mode and number of proofs:**
|    ``skipping_`` - ``zero_or_one``


------------

.. index:: skipping_unleashed_/1
.. _debugger/0::skipping_unleashed_/1:

``skipping_unleashed_/1``
^^^^^^^^^^^^^^^^^^^^^^^^^

True iff skipping (a goal with invocation number ``N``) but showing intermediate ports as unleashed.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``skipping_unleashed_(N)``
| **Mode and number of proofs:**
|    ``skipping_unleashed_(?integer)`` - ``zero_or_one``


------------

.. index:: quasi_skipping_/0
.. _debugger/0::quasi_skipping_/0:

``quasi_skipping_/0``
^^^^^^^^^^^^^^^^^^^^^

True iff quasi-skipping.

| **Compilation flags:**
|    ``dynamic``

| **Mode and number of proofs:**
|    ``quasi_skipping_`` - ``zero_or_one``


------------

.. index:: leaping_/1
.. _debugger/0::leaping_/1:

``leaping_/1``
^^^^^^^^^^^^^^

True iff leaping in tracing or debugging mode.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``leaping_(Mode)``
| **Mode and number of proofs:**
|    ``leaping_(?atom)`` - ``zero_or_one``


------------

.. index:: spying_line_number_/2
.. _debugger/0::spying_line_number_/2:

``spying_line_number_/2``
^^^^^^^^^^^^^^^^^^^^^^^^^

Table of line number breakpoints.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``spying_line_number_(Entity,Line)``
| **Mode and number of proofs:**
|    ``spying_line_number_(?object_identifier,?integer)`` - ``zero_or_more``
|    ``spying_line_number_(?category_identifier,?integer)`` - ``zero_or_more``


------------

.. index:: spying_predicate_/3
.. _debugger/0::spying_predicate_/3:

``spying_predicate_/3``
^^^^^^^^^^^^^^^^^^^^^^^

Table of predicate spy points.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``spying_predicate_(Functor,Arity,Original)``
| **Mode and number of proofs:**
|    ``spying_predicate_(?atom,?integer,?predicate_indicator)`` - ``zero_or_more``
|    ``spying_predicate_(?atom,?integer,?non_terminal_indicator)`` - ``zero_or_more``


------------

.. index:: spying_context_/4
.. _debugger/0::spying_context_/4:

``spying_context_/4``
^^^^^^^^^^^^^^^^^^^^^

Table of context spy points.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``spying_context_(Sender,This,Self,Goal)``
| **Mode and number of proofs:**
|    ``spying_context_(?object_identifier,?object_identifier,?object_identifier,?callable)`` - ``zero_or_more``


------------

.. index:: leashing_/1
.. _debugger/0::leashing_/1:

``leashing_/1``
^^^^^^^^^^^^^^^

Table of currently leashed ports.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``leashing_(Port)``
| **Mode and number of proofs:**
|    ``leashing_(?atom)`` - ``zero_or_more``


------------

.. index:: invocation_number_/1
.. _debugger/0::invocation_number_/1:

``invocation_number_/1``
^^^^^^^^^^^^^^^^^^^^^^^^

Current call stack invocation number.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``invocation_number_(N)``
| **Mode and number of proofs:**
|    ``invocation_number_(?integer)`` - ``zero_or_one``


------------

.. index:: jump_to_invocation_number_/1
.. _debugger/0::jump_to_invocation_number_/1:

``jump_to_invocation_number_/1``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Invocation number to jump to.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``jump_to_invocation_number_(N)``
| **Mode and number of proofs:**
|    ``jump_to_invocation_number_(?integer)`` - ``zero_or_one``


------------

.. index:: zap_to_port_/1
.. _debugger/0::zap_to_port_/1:

``zap_to_port_/1``
^^^^^^^^^^^^^^^^^^

Port to zap to.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``zap_to_port_(Port)``
| **Mode and number of proofs:**
|    ``zap_to_port_(?integer)`` - ``zero_or_one``


------------

.. index:: write_max_depth_/1
.. _debugger/0::write_max_depth_/1:

``write_max_depth_/1``
^^^^^^^^^^^^^^^^^^^^^^

Current term maximum depth.

| **Compilation flags:**
|    ``dynamic``

| **Template:**
|    ``write_max_depth_(MaxDepth)``
| **Mode and number of proofs:**
|    ``write_max_depth_(?integer)`` - ``zero_or_one``


------------

Operators
---------

(none)

