int debug_illegal = 0;
uae_u64 debug_illegal_mask;
static int debug_mmu_mode;
+static bool break_if_enforcer;
static uaecptr processptr;
static uae_char *processname;
mmu_triggered = 0;
}
+bool debug_enforcer(void)
+{
+ if (!break_if_enforcer)
+ return false;
+ activate_debugger();
+ return true;
+}
+
int firsthist = 0;
int lasthist = 0;
static struct regstruct history[MAX_HIST];
} else if (inptr[0] == 'c' || inptr[0] == 's') {
if (cycle_breakpoint(&inptr))
return true;
+ } else if (inptr[0] == 'e' && inptr[1] == 'n') {
+ break_if_enforcer = break_if_enforcer ? false : true;
+ console_out_f(_T("Break when enforcer hit: %s\n"), break_if_enforcer ? _T("enabled") : _T("disabled"));
} else {
if (instruction_breakpoint (&inptr))
return true;
#include "uae.h"
#include "xwin.h"
#include "enforcer.h"
+#include "debug.h"
#ifdef AHI
console_out (enforcer_buf);
write_log (_T("%s"), enforcer_buf);
- sleep_millis (5);
- doflashscreen ();
+ if (!debug_enforcer()) {
+ sleep_millis (5);
+ doflashscreen ();
+ }
end:
xfree (native_task_name);
extern int debug_peek_memory_8 (uaecptr addr);
extern int debug_write_memory_16 (uaecptr addr, uae_u16 v);
extern int debug_write_memory_8 (uaecptr addr, uae_u8 v);
+extern bool debug_enforcer(void);
#define BREAKPOINT_TOTAL 20
struct breakpoint_node {