summaryrefslogtreecommitdiffstatshomepage
path: root/docs/source/debugger
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2022-08-28 13:27:35 -0400
committer AJR <ajrhacker@users.noreply.github.com>2022-08-28 13:31:50 -0400
commitd8d588262de1f11a529b208e470cff9b89a4cba6 (patch)
treefbeff8d28cb8538d527b8e3cc6c3df572d495189 /docs/source/debugger
parentf52b402f2416ddfd646afe2d132c16d78c6fe9c3 (diff)
Debugger changes
- Added exception points as a new class of "points" triggering on specific exception numbers, with a similar set of commands to breakpoints and registerpoints. - Removed the per-instruction callback hook from device_debug. Only one driver was using this (rmnimbus.cpp), and what it was doing with it could be done more cleanly with exception points. - Change the type of the action string parameter for "points"-creating methods and make some parameters optional for those. - Change trace file logging to use a std::ostream instead of FILE * to take better advantage of strformat.
Diffstat (limited to 'docs/source/debugger')
-rw-r--r--docs/source/debugger/exceptionpoint.rst134
-rw-r--r--docs/source/debugger/index.rst1
2 files changed, 135 insertions, 0 deletions
diff --git a/docs/source/debugger/exceptionpoint.rst b/docs/source/debugger/exceptionpoint.rst
new file mode 100644
index 00000000000..52a8ee67a19
--- /dev/null
+++ b/docs/source/debugger/exceptionpoint.rst
@@ -0,0 +1,134 @@
+.. _debugger-exceptionpoint-list:
+
+Exception Point Debugger Commands
+=================================
+
+:ref:`debugger-command-epset`
+ sets a new exception point
+:ref:`debugger-command-epclear`
+ clears a specific exception point or all exception points
+:ref:`debugger-command-epdisable`
+ disables a specific exception point or all exception points
+:ref:`debugger-command-epenable`
+ enables a specific exception point or all exception points
+:ref:`debugger-command-eplist`
+ lists exception points
+
+Exception points halt execution and activate the debugger when
+a CPU raises a particular exception number.
+
+
+.. _debugger-command-epset:
+
+epset
+-----
+
+**ep[set] <type>[,<condition>[,<action>]]**
+
+Sets a new exception point for exceptions of type **<type>**. The
+optional **<condition>** parameter lets you specify an expression that
+will be evaluated each time the exception point is hit. If the result
+of the expression is true (non-zero), the exception point will actually
+halt execution at the start of the exception handler; otherwise,
+execution will continue with no notification. The optional **<action>**
+parameter provides a command that is executed whenever the exception
+point is hit and the **<condition>** is true. Note that you may need to
+embed the action within braces ``{ }`` in order to prevent commas and
+semicolons from being interpreted as applying to the ``epset`` command
+itself.
+
+The numbering of exceptions depends upon the CPU type. Causes of
+exceptions may include internally or externally vectored interrupts,
+errors occurring within instructions and system calls.
+
+Each exception point that is set is assigned an index which can be used
+in other exception point commands to reference this exception point.
+
+Examples:
+
+``ep 2``
+ Set an exception that will halt execution whenever the visible CPU
+ raises exception number 2.
+
+Back to :ref:`debugger-exceptionpoint-list`
+
+
+.. _debugger-command-epclear:
+
+epclear
+-------
+
+**epclear [<epnum>[,…]]**
+
+The epclear command clears exception points. If **<epnum>** is
+specified, only the requested exception points are cleared, otherwise
+all exception points are cleared.
+
+Examples:
+
+``epclear 3``
+ Clear exception point index 3.
+
+``epclear``
+ Clear all exception points.
+
+Back to :ref:`debugger-exceptionpoint-list`
+
+
+.. _debugger-command-epdisable:
+
+epdisable
+---------
+
+**epdisable [<epnum>[,…]]**
+
+The epdisable command disables exception points. If **<epnum>** is
+specified, only the requested exception points are disabled, otherwise
+all exception points are disabled. Note that disabling an exception
+point does not delete it, it just temporarily marks the exception
+point as inactive.
+
+Examples:
+
+``epdisable 3``
+ Disable exception point index 3.
+
+``epdisable``
+ Disable all exception points.
+
+Back to :ref:`debugger-exceptionpoint-list`
+
+
+.. _debugger-command-epenable:
+
+epenable
+--------
+
+**epenable [<epnum>[,…]]**
+
+The epenable command enables exception points. If **<epnum>** is
+specified, only the requested exception points are enabled, otherwise
+all exception points are enabled.
+
+Examples:
+
+``epenable 3``
+ Enable exception point index 3.
+
+``epenable``
+ Enable all exception points.
+
+Back to :ref:`debugger-exceptionpoint-list`
+
+
+.. _debugger-command-eplist:
+
+eplist
+------
+
+**eplist**
+
+The eplist command lists all the current exception points, along with
+their index and any conditions or actions attached to them.
+
+Back to :ref:`debugger-exceptionpoint-list`
diff --git a/docs/source/debugger/index.rst b/docs/source/debugger/index.rst
index 4b6cd02d2ba..3db394f7516 100644
--- a/docs/source/debugger/index.rst
+++ b/docs/source/debugger/index.rst
@@ -50,6 +50,7 @@ name of a command, to see documentation directly in MAME.
breakpoint
watchpoint
registerpoints
+ exceptionpoint
annotation
cheats
image