diff options
author | 2022-08-28 13:27:35 -0400 | |
---|---|---|
committer | 2022-08-28 13:31:50 -0400 | |
commit | d8d588262de1f11a529b208e470cff9b89a4cba6 (patch) | |
tree | fbeff8d28cb8538d527b8e3cc6c3df572d495189 /docs/source/debugger | |
parent | f52b402f2416ddfd646afe2d132c16d78c6fe9c3 (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.rst | 134 | ||||
-rw-r--r-- | docs/source/debugger/index.rst | 1 |
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 |