summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/debugcpu.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-05-08 13:40:19 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-05-08 13:40:19 -0400
commit2c637cbbf4db0ec40db462336283fbe30d508336 (patch)
tree64b64e9fd1c6d7c4b85b50fcaac4c0596582cfaa /src/emu/debug/debugcpu.cpp
parent2a4091319856597c4b14b194f6dcc864a1267838 (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)
Diffstat (limited to 'src/emu/debug/debugcpu.cpp')
-rw-r--r--src/emu/debug/debugcpu.cpp9
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;