diff options
author | 2020-05-08 13:40:19 -0400 | |
---|---|---|
committer | 2020-05-08 13:40:19 -0400 | |
commit | 2c637cbbf4db0ec40db462336283fbe30d508336 (patch) | |
tree | 64b64e9fd1c6d7c4b85b50fcaac4c0596582cfaa | |
parent | 2a4091319856597c4b14b194f6dcc864a1267838 (diff) |
Fix recent debugger regression with systems such as fi6845/fi8275 where a DMAC or other non-focusable executing device is scheduled first of all (nw)
-rw-r--r-- | src/emu/debug/debugcpu.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/emu/debug/debugcpu.cpp b/src/emu/debug/debugcpu.cpp index a02aa9f49aa..fb5db3ffb89 100644 --- a/src/emu/debug/debugcpu.cpp +++ b/src/emu/debug/debugcpu.cpp @@ -1146,8 +1146,15 @@ void debugger_cpu::start_hook(device_t *device, bool stop_on_vblank) assert(m_livecpu == nullptr); m_livecpu = device; + // can't stop on a device without a state interface + if (m_execution_state == exec_state::STOPPED && dynamic_cast<device_state_interface *>(device) == nullptr) + { + if (m_stop_when_not_device == nullptr) + m_stop_when_not_device = device; + m_execution_state = exec_state::RUNNING; + } // if we're a new device, stop now - if (m_stop_when_not_device != nullptr && m_stop_when_not_device != device && device->debug()->observing()) + else if (m_stop_when_not_device != nullptr && m_stop_when_not_device != device && device->debug()->observing()) { m_stop_when_not_device = nullptr; m_execution_state = exec_state::STOPPED; |