summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/debugcpu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/debug/debugcpu.cpp')
-rw-r--r--src/emu/debug/debugcpu.cpp26
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;
}