Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
09420 Debugger Critical (emulator) Always 1 day ago 8 hours ago
Tester hap View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows (x64)
Status [?] New 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) 1 day ago Uploaded by hap
hap
Relationships
There are no relationship linked to this issue.
Notes
2
User avatar
No.24287
Robbbert
Moderator
1 day 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
8 hours ago
I tried on my laptop (newer CPU than main pc, Windows 11 instead of 10), and can repro the same crash.