Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
05846 Core Critical (emulator) Always Feb 9, 2015, 19:31 Mar 23, 2015, 09:42
Tester Kale View Status Public Platform MAME (Self-compiled)
Assigned To peterferrie Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver
Version 0.158 Fixed in Version 0.160 Build Normal
Fixed in Git Commit Github Pull Request #
Summary 05846: ALT+TAB during ROM loading screen causes assert with -debug.
Description On my end, pressing ALT+TAB to switch between programs during "Loading ROMs" causes an ACCESS VIOLATION with MAME. Any other emulator condition (i.e. Window or Full Screen) doesn't have this bug.
Steps To Reproduce mame64 spikeout -debug
Press ALT+TAB on loading.
Additional Information Exception at EIP=0000000001B4C194 (debug_cpu_is_stopped(running_machine&)+0x0004
): ACCESS VIOLATION
While attempting to read memory at 0000000000000068
-----------------------------------------------------
RAX=0000000000000000 RBX=0000000006512E90 RCX=0000000000000000 RDX=0000000000000
000
RSI=000000000022FB70 RDI=0000000000000001 RBP=0000000000227940 RSP=0000000000227
940
 R8=0000000000227918 R9=0000000000227940 R10=0000000000000000 R11=0000000000000
246
R12=0000000000227A40 R13=0000000000000000 R14=0000000000228440 R15=0000000000200
000
-----------------------------------------------------
Stack crawl:
  0000000000227940: 0000000001B4C194 (debug_cpu_is_stopped(running_machine&)+0x0
004)
  0000000000227990: 0000000000FF7FE1 (debugger_windows::debugger_update()+0x0031
)
  00000000002279C0: 0000000000FD429A (osd_common_t::debugger_update()+0x001a)
  0000000000227A00: 0000000000FD6822 (windows_osd_interface::update(bool)+0x00c2
)
  0000000000227A80: 0000000001B980DC (video_manager::frame_update(bool)+0x015c)
  0000000000227AD0: 0000000001B3F450 (ui_manager::set_startup_text(char const*,
bool)+0x0060)
  00000000002280C0: 0000000001B46086 (open_rom_file(romload_private*, char const
*, rom_entry const*, astring&, bool)+0x0116)
  0000000000228600: 0000000001B49BA1 (rom_init(running_machine&)+0x1151)
  0000000000228740: 0000000001AC8C22 (running_machine::start()+0x0632)
  00000000002287A0: 0000000001ACBF15 (running_machine::run(bool)+0x00c5)
  000000000022F590: 0000000001ADF788 (machine_manager::execute()+0x0228)
  000000000022F780: 0000000001B661AD (cli_frontend::execute(int, char**)+0x0c7d)

  000000000022FDF0: 0000000000FCFCB8 (utf8_main(int, char**)+0x01a8)
  000000000022FE50: 0000000001E5CEAE (wmain+0x007e)
  000000000022FF20: 00000000004013CA (__tmainCRTStartup+0x024a)
  000000000022FF50: 00000000004014F8 (mainCRTStartup+0x0018)
  000000000022FF80: 0000000077745A4D (BaseThreadInitThunk+0x000d)
  000000000022FFD0: 00000000779DBA01 (RtlUserThreadStart+0x0021)
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
3
User avatar
No.11453
B2K24
Senior Tester
Feb 9, 2015, 19:59
Exception at EIP=0000000001B4C194 (debug_cpu_is_stopped(running_machine&)+0x0004
): ACCESS VIOLATION
While attempting to read memory at 0000000000000068
-----------------------------------------------------
RAX=0000000000000000 RBX=0000000006512E90 RCX=0000000000000000 RDX=0000000000000
000
RSI=000000000022FB70 RDI=0000000000000001 RBP=0000000000227940 RSP=0000000000227
940
 R8=0000000000227918 R9=0000000000227940 R10=0000000000000000 R11=0000000000000
246
R12=0000000000227A40 R13=0000000000000000 R14=0000000000228440 R15=0000000000200
000
-----------------------------------------------------
Stack crawl:
  0000000000227940: 0000000001B4C194 (debug_cpu_is_stopped(running_machine&)+0x0
004)
  0000000000227990: 0000000000FF7FE1 (debugger_windows::debugger_update()+0x0031
)
  00000000002279C0: 0000000000FD429A (osd_common_t::debugger_update()+0x001a)
  0000000000227A00: 0000000000FD6822 (windows_osd_interface::update(bool)+0x00c2
)
  0000000000227A80: 0000000001B980DC (video_manager::frame_update(bool)+0x015c)
  0000000000227AD0: 0000000001B3F450 (ui_manager::set_startup_text(char const*,
bool)+0x0060)
  00000000002280C0: 0000000001B46086 (open_rom_file(romload_private*, char const
*, rom_entry const*, astring&, bool)+0x0116)
  0000000000228600: 0000000001B49BA1 (rom_init(running_machine&)+0x1151)
  0000000000228740: 0000000001AC8C22 (running_machine::start()+0x0632)
  00000000002287A0: 0000000001ACBF15 (running_machine::run(bool)+0x00c5)
  000000000022F590: 0000000001ADF788 (machine_manager::execute()+0x0228)
  000000000022F780: 0000000001B661AD (cli_frontend::execute(int, char**)+0x0c7d)

  000000000022FDF0: 0000000000FCFCB8 (utf8_main(int, char**)+0x01a8)
  000000000022FE50: 0000000001E5CEAE (wmain+0x007e)
  000000000022FF20: 00000000004013CA (__tmainCRTStartup+0x024a)
  000000000022FF50: 00000000004014F8 (mainCRTStartup+0x0018)
  000000000022FF80: 0000000077745A4D (BaseThreadInitThunk+0x000d)
  000000000022FFD0: 00000000779DBA01 (RtlUserThreadStart+0x0021)
User avatar
No.11466
Kale
Developer
Feb 16, 2015, 01:47
Updated report, thanks
User avatar
No.11517
peterferrie
Developer
Mar 17, 2015, 00:12
edited on: Mar 17, 2015, 16:19
There's a race condition where the debugger window update function is called before the debug_init function is called.
Will be fixed in 0.160.