diff options
Diffstat (limited to 'src/emu/debug/debugcpu.cpp')
-rw-r--r-- | src/emu/debug/debugcpu.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/emu/debug/debugcpu.cpp b/src/emu/debug/debugcpu.cpp index e324ad8fd10..ba1b6d4f9a7 100644 --- a/src/emu/debug/debugcpu.cpp +++ b/src/emu/debug/debugcpu.cpp @@ -366,6 +366,7 @@ u8 debugger_cpu::read_byte(address_space &space, offs_t address, bool apply_tran /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); /* translate if necessary; if not mapped, return 0xff */ u64 custom; @@ -385,6 +386,7 @@ u8 debugger_cpu::read_byte(address_space &space, offs_t address, bool apply_tran /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); return result; } @@ -417,6 +419,7 @@ u16 debugger_cpu::read_word(address_space &space, offs_t address, bool apply_tra /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); /* translate if necessary; if not mapped, return 0xffff */ u64 custom; @@ -435,6 +438,7 @@ u16 debugger_cpu::read_word(address_space &space, offs_t address, bool apply_tra /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); } return result; @@ -469,6 +473,7 @@ u32 debugger_cpu::read_dword(address_space &space, offs_t address, bool apply_tr /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); u64 custom; if (apply_translation && !memory.translate(space.spacenum(), TRANSLATE_READ_DEBUG, address)) @@ -486,6 +491,7 @@ u32 debugger_cpu::read_dword(address_space &space, offs_t address, bool apply_tr /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); } return result; @@ -520,6 +526,7 @@ u64 debugger_cpu::read_qword(address_space &space, offs_t address, bool apply_tr /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); /* translate if necessary; if not mapped, return 0xffffffffffffffff */ u64 custom; @@ -538,6 +545,7 @@ u64 debugger_cpu::read_qword(address_space &space, offs_t address, bool apply_tr /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); } return result; @@ -577,6 +585,7 @@ void debugger_cpu::write_byte(address_space &space, offs_t address, u8 data, boo /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); /* translate if necessary; if not mapped, we're done */ if (apply_translation && !memory.translate(space.spacenum(), TRANSLATE_WRITE_DEBUG, address)) @@ -592,6 +601,7 @@ void debugger_cpu::write_byte(address_space &space, offs_t address, u8 data, boo /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); m_memory_modified = true; } @@ -629,6 +639,7 @@ void debugger_cpu::write_word(address_space &space, offs_t address, u16 data, bo /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); /* translate if necessary; if not mapped, we're done */ if (apply_translation && !memory.translate(space.spacenum(), TRANSLATE_WRITE_DEBUG, address)) @@ -644,6 +655,7 @@ void debugger_cpu::write_word(address_space &space, offs_t address, u16 data, bo /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); m_memory_modified = true; } @@ -681,7 +693,7 @@ void debugger_cpu::write_dword(address_space &space, offs_t address, u32 data, b device_memory_interface &memory = space.device().memory(); /* all accesses from this point on are for the debugger */ - m_debugger_access = true; + space.set_debugger_access(m_debugger_access = true); /* translate if necessary; if not mapped, we're done */ if (apply_translation && !memory.translate(space.spacenum(), TRANSLATE_WRITE_DEBUG, address)) @@ -697,6 +709,7 @@ void debugger_cpu::write_dword(address_space &space, offs_t address, u32 data, b /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); m_memory_modified = true; } @@ -735,6 +748,7 @@ void debugger_cpu::write_qword(address_space &space, offs_t address, u64 data, b /* all accesses from this point on are for the debugger */ m_debugger_access = true; + space.set_debugger_access(true); /* translate if necessary; if not mapped, we're done */ if (apply_translation && !memory.translate(space.spacenum(), TRANSLATE_WRITE_DEBUG, address)) @@ -750,6 +764,7 @@ void debugger_cpu::write_qword(address_space &space, offs_t address, u64 data, b /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); m_memory_modified = true; } @@ -789,9 +804,11 @@ u64 debugger_cpu::read_opcode(address_space &space, offs_t address, int size) /* return early if we got the result directly */ m_debugger_access = true; + space.set_debugger_access(true); if (memory.readop(address, size, result2)) { m_debugger_access = false; + space.set_debugger_access(false); return result2; } @@ -868,7 +885,11 @@ u64 debugger_cpu::read_opcode(address_space &space, offs_t address, int size) } /* turn on debugger access */ - m_debugger_access = true; + if (!m_debugger_access) + { + m_debugger_access = true; + space.set_debugger_access(true); + } /* switch off the size and handle unaligned accesses */ switch (size) @@ -918,6 +939,7 @@ u64 debugger_cpu::read_opcode(address_space &space, offs_t address, int size) /* no longer accessing via the debugger */ m_debugger_access = false; + space.set_debugger_access(false); return result; } |