* Debugger: add new flags to breakpoints.
Stop / no stop.
Hit count
Keep temp breakpoint alive so they can be inspected.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
* Debugger: ensure temporary breakpoints are removed when the execution restarts.
This code:
_BWZ_Clear(pBP, iBreakpoint);
was actually a bug since the function needs the root points of all breakpoints, not to a particular one.
* Breakpoints: some extra tweaks.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
* Remove reundant code and comment.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
* Breakpoints: coding standards.
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
---------
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
When the debugger is active (eg. breakpoints enabled) then trap on HDD r/w's that match the BPM[R|W].
NB. the breakpoint will fire after the whole HDD r/w operation has completed.
Extend LBR so that it includes the control-flow on a taken interrupt
Add a new command 'brkint <0|1>' to support Break on Interrupt
Internal: in core emulation loop, moved IRQ/NMI check to start of loop so that just the "interrupt vectoring" case can be single-stepped (instead of previously opcode + interrupt vector).
Debugger help chm: update Breakpoints section to include BRK, BRKOP and BRKINT
This reduces the chances of incompatibility between gcc and vs.
99% is "const char *" literals.
1 case of a goto jumping over a variable declaration (but it is not needed).
Changes to ease code compilation in GCC.
Disk_t and HDD contain a std::string and for this reason they need a proper constructor, ZeroMemory is not guaranteed to work.
. ie: ESC, F7 and Pause key
Debugger: Fix for MODE_STEPPING when jump from $C3xx to $C8xx:
. Don't break on floating-bus, as Expansion ROM will be switched in on
this access.
IORead_Cxxx(): Fix the logic for IO_SELECT when not slot-3
. Improved break on FB or IO: account for slot empty (or not) & if expansion ROM enable
Memory:
. IORead_Cxxx(): Fix for Apple II support for when slot-3 is empty
. Apple II type was erroneously testing //e soft-switches
. Move the BRK and invalid opcodes checks out of main emulation's Fetch() and into DebugContinueStepping()
. Added a new break condition: when PC reads floating bus or I/O memory
. On a break condition, output a 'Stop Reason' message to the console
. Debug 'G(o)' cmd now defaults to normal speed (and precise video updates)
. New debug 'GG' cmd enables full speed (and periodic video updates)
. Single-stepping (normal or full speed) now routed through ContinueExecution()
. Removed Cpu6502()/Cpu65C02() check for debug breakpoints
. Removed the (undocumented) SHIFT+F7 feature to exit debugger for 'normal speed breakpoints'
. Removed the g_bDebugNormalSpeedBreakpoints variable