Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09420 Debugger Critical (emulator) Always 18 days ago 15 days ago
Tester hap View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows (x64)
Status [?] Confirmed Driver
Version 0.286 Fixed in Version Build x64
Fixed in Git Commit Github Pull Request #
Summary 09420: Crash after clicking on live disasm and doing a hard reset
Description MAME crashes after clicking on live disasm and doing a hard reset.
Happens as early as 0.256

-----------------------------------------------------
Exception at EIP=00007ff72eb095fb (std::_Function_handler<void (unsigned int, unsigned int), debug_disasm_buffer::debug_data_buffer::setup_methods()::{lambda(unsigned int, unsigned int)#11}>::_M_invoke(std::_Any_data const&, unsigned int&&, unsigned int&&)+0x002b): ACCESS VIOLATION
While attempting to read memory at 0000000000000000
-----------------------------------------------------
RAX=0000016845fa1f60 RBX=0000000000002263 RCX=0000000ccd4f9538 RDX=0000000ccd4f89e0
RSI=0000000000002264 RDI=0000000ccd4f9538 RBP=0000000000002264 RSP=0000000ccd4f8930
 R8=0000000ccd4f89e4 R9=000000000000003b R10=0000000000000000 R11=0080000001020400
R12=0000000000002264 R13=0000000ccd4f9000 R14=0000000000000000 R15=0000000ccd4f9508
-----------------------------------------------------
Stack crawl:
  0000000ccd4f89a0: 00007ff72eb095fb (std::_Function_handler<void (unsigned int, unsigned int), debug_disasm_buffer::debug_data_buffer::setup_methods()::{lambda(unsigned int, unsigned int)#11}>::_M_invoke(std::_Any_data const&, unsigned int&&, unsigned int&&)+0x002b)
  0000000ccd4f8a10: 00007ff72eb1a920 (debug_disasm_buffer::debug_data_buffer::fill(unsigned int, unsigned int) const+0x02c0)
  0000000ccd4f8a50: 00007ff72eb1b73b (std::_Function_handler<unsigned char (unsigned int), debug_disasm_buffer::debug_data_buffer::setup_methods()::{lambda(unsigned int)#64}>::_M_invoke(std::_Any_data const&, unsigned int&&)+0x001b)
  0000000ccd4f8a90: 00007ff72eb09964 (debug_disasm_buffer::debug_data_buffer::r8(unsigned int) const+0x0024)
  0000000ccd4f8f70: 00007ff72bdf44f6 (z80_disassembler::disassemble(std::ostream&, unsigned int, util::disasm_interface::data_buffer const&, util::disasm_interface::data_buffer const&)+0x0076)
  0000000ccd4f91d0: 00007ff72eb1a09b (debug_disasm_buffer::disassemble(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, unsigned int&, unsigned int&) const+0x01db)
  0000000ccd4f9290: 00007ff72ef5229b (debug_view_disasm::generate_with_pc(debug_disasm_buffer&, unsigned int)+0x034b)
  0000000ccd4f92f0: 00007ff72ef53157 (debug_view_disasm::generate_dasm(debug_disasm_buffer&, unsigned int)+0x0147)
  0000000ccd4f9830: 00007ff72ef532cc (debug_view_disasm::view_update()+0x008c)
  0000000ccd4f9870: 00007ff72adc7f88 (debug_view::set_cursor_visible(bool)+0x0098)
  0000000ccd4f9920: 00007ff73052dab3 (luaopen_lfs+0x96d9c3)
  0000000ccd4f9ab0: 00007ffb8d6cef5c (CallWindowProcW+0x060c)
  0000000ccd4f9b10: 00007ffb8d6ce8cc (DispatchMessageW+0x06ec)
  0000000ccd4f9b70: 00007ffb8d6e10c3 (SendMessageTimeoutW+0x0143)
  0000000ccd4f9bf8: 00007ffb8e791494 (KiUserCallbackDispatcher+0x0024)
  0000000ccd4f9c00: 00007ffb8c012384 (NtUserDestroyWindow+0x0014)
  0000000ccd4f9c30: 00007ff73052b7b0 (luaopen_lfs+0x96b6c0)
  0000000ccd4f9c60: 00007ff7305333a8 (luaopen_lfs+0x9732b8)
  0000000ccd4f9ca0: 00007ff730096d97 (luaopen_lfs+0x4d6ca7)
  0000000ccd4f9ce0: 00007ff72ee750d8 (osd::(anonymous namespace)::debugger_windows::exit()+0x0028)
  0000000ccd4f9d20: 00007ff72ee1d81a (osd_module_manager::exit()+0x004a)
  0000000ccd4f9d60: 00007ff72ab8a96d (osd_common_t::osd_exit()+0x005d)
  0000000ccd4f9d90: 00007ff72732bf61 (windows_osd_interface::osd_exit()+0x0021)
  0000000ccd4f9ee0: 00007ff7275262ba (running_machine::run(bool)+0x028a)
  0000000ccd4ff360: 00007ff72ab78a9b (mame_machine_manager::execute()+0x020b)
  0000000ccd4ff740: 00007ff72edefad9 (cli_frontend::start_execution(mame_machine_manager*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x03c9)
  0000000ccd4ff9f0: 00007ff72edf008d (cli_frontend::execute(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)+0x004d)
  0000000ccd4ffa50: 00007ff72ab73179 (emulator_info::start_frontend(emu_options&, osd_interface&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)+0x0029)
  0000000ccd4ffe20: 00007ff730c267bc (luaopen_lfs+0x10666cc)
  0000000ccd4ffef0: 00007ff7233013b1 (__tmainCRTStartup+0x0231)
  0000000ccd4fff20: 00007ff7233014e6 (mainCRTStartup+0x0016)
  0000000ccd4fff50: 00007ffb8de57374 (BaseThreadInitThunk+0x0014)
  0000000ccd4fffd0: 00007ffb8e73cc91 (RtlUserThreadStart+0x0021)
Steps To Reproduce game does not matter, but let's use pacman as example
- mame pacman -window -debug
- left click once on live disasm (background of that line becomes red, see screenshot what I mean)
- hard reset from debug menu, or by pressing shift f3
- mame crashes
Additional Information Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007ff70099a95b in debug_watchpoint::triggered(read_or_write, unsigned int, unsigned long long, unsigned long long)
    ()
(gdb) bt
#0 0x00007ff70099a95b in debug_watchpoint::triggered(read_or_write, unsigned int, unsigned long long, unsigned long long) ()
#1 0x00007ff7009ab9bd in debug_disasm_buffer::debug_data_buffer::fill(unsigned int, unsigned int) const ()
#2 0x00007ff7009ac7cb in debug_disasm_buffer::debug_data_buffer::fill(unsigned int, unsigned int) const ()
#3 0x00007ff70099ae34 in debug_disasm_buffer::debug_data_buffer::r8(unsigned int) const ()
#4 0x00007ff6fda0472f in z80_disassembler::disassemble(std::basic_ostream<char, std::char_traits<char> >&, unsigned int, util::disasm_interface::data_buffer const&, util::disasm_interface::data_buffer const&) ()
#5 0x00007ff7009ab199 in debug_disasm_buffer::disassemble(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned int&, unsigned int&, unsigned int&) const ()
#6 0x00007ff700df1320 in debug_view_disasm::generate_with_pc(debug_disasm_buffer&, unsigned int) ()
#7 0x00007ff700df226b in debug_view_disasm::generate_dasm(debug_disasm_buffer&, unsigned int) ()
#8 0x00007ff700df23d8 in debug_view_disasm::view_update() ()
#9 0x00007ff6fc97020b in debug_view::set_cursor_visible(bool) ()
#10 0x00007ff70250aa8b in osd::debugger::win::debugview_info::view_proc(unsigned int, unsigned long long, long long) ()
#11 0x00007ffb8d6cef5c in USER32!CallWindowProcW () from C:\WINDOWS\System32\user32.dll
#12 0x00007ffb8d6ce8cc in USER32!DispatchMessageW () from C:\WINDOWS\System32\user32.dll
#13 0x00007ffb8d6e10c3 in USER32!SendMessageTimeoutW () from C:\WINDOWS\System32\user32.dll
#14 0x00007ffb8e791494 in ntdll!KiUserCallbackDispatcher () from C:\WINDOWS\SYSTEM32\ntdll.dll
#15 0x00007ffb8c012384 in win32u!NtUserDestroyWindow () from C:\WINDOWS\System32\win32u.dll
#16 0x00007ff702508140 in osd::debugger::win::debugview_info::~debugview_info() ()
#17 0x00007ff70250fc88 in osd::debugger::win::disasmview_info::~disasmview_info() ()
#18 0x00007ff701fda4d7 in osd::debugger::win::debugwin_info::destroy() ()
#19 0x00007ff700d0fc48 in std::_Hashtable<input_item_id, std::pair<input_item_id const, ImGuiKey>, std::allocator<std::pair<input_item_id const, ImGuiKey> >, std::__detail::_Select1st, std::equal_to<input_item_id>, std::hash<input_item_id>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long long, unsigned long long, std::__detail::_Hash_node<std::pair<input_item_id const, ImGuiKey>, false>*, unsigned long long) ()
#20 0x00007ff700cb58ea in osd_module_manager::exit() ()
#21 0x00007ff6fc6e46a4 in osd_common_t::osd_exit() ()
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x00007ff6f8a46f90 in windows_osd_interface::osd_exit() ()
#23 0x00007ff6f8c8420a in running_machine::run(bool) ()
#24 0x00007ff6fc6ce770 in mame_machine_manager::execute() ()
#25 0x00007ff700c91e46 in cli_frontend::start_execution(mame_machine_manager*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) ()
#26 0x00007ff700c923f8 in cli_frontend::execute(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) ()
#27 0x00007ff6fc6c96d6 in emulator_info::start_frontend(emu_options&, osd_interface&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) ()
#28 0x00007ff702c2aba8 in main ()
(gdb)
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
png file icon Screenshot (871).png (32,076 bytes) 18 days ago Uploaded by hap
hap
Relationships
There are no relationship linked to this issue.
Notes
3
User avatar
No.24287
Robbbert
Moderator
17 days ago
Unable to reproduce this. When I asked for Hard Reset, it restarted with address 0000 highlighted in brown. At this point I could only run the program one instruction at a time by pressing enter, with 'g' or 'q' having no effect. Can't see how to turn this off without exiting and deleting the cfg.
User avatar
No.24290
hap
Developer
16 days ago
I tried on my laptop (newer CPU than main pc, Windows 11 instead of 10), and can repro the same crash.
User avatar
No.24296
Osso
Moderator
15 days ago
I can reproduce it even in 0.150, so I don't know if it ever worked.