[ オリジナルレポート ]

BugID: #08752

カテゴリ 重要度 ステータス 解決状況 登録日時 最終更新
システムコア仮承認未処理2023-09-03 21:432023-09-06 23:57
 
テスターHirudov担当者 ソース
バージョン0.258発生バージョン修正バージョン
修正コミットプルリク
フラグ
セット indy_4610
セット詳細
indy_4610 - Indy (R4600, 100MHz)
 
概 要ネットワーク設定でIRIX 6.2をロードしようとするとMAMEがクラッシュする。
詳 細Running latest MAME or any version after 0.241 (when dynamic recompilation was introduced) with the following commandline

mame indy_4610 -hard1 "software/irix62.chd"

Crashes MAME when trying to load the OS at the Network configuration part.

-----------------------------------------------------
Exception at EIP=00007ff6c390bb6f (void std::vector<pci_device*, std::allocator<pci_device*> >::_M_realloc_insert<pci_device* const&>(__gnu_cxx::__normal_iterator<pci_device**, std::vector<pci_device*, std::allocator<pci_device*> > >, pci_device* const&)+0x006f): ACCESS VIOLATION
While attempting to read memory at 0000000000000000
-----------------------------------------------------
RAX=000000000000000b RBX=0000017e4b316450 RCX=0000017e4b276ee0 RDX=00000000900cbfe4
RSI=0000017e3e450080 RDI=0000000000000000 RBP=0000007c5c979284 RSP=0000007c5c979210
R8=0000000000000004 R9=0000007c5c9792e0 R10=0000017e3bc400b8 R11=0000000000000006
R12=0000017e450b50f0 R13=00000000100cbfe4 R14=00000000100cbfe4 R15=0000007c5c9799d0
-----------------------------------------------------
Stack crawl:
0000007c5c9795b0: 00007ff6c390bb6f (void std::vector<pci_device*, std::allocator<pci_device*> >::_M_realloc_insert<pci_device* const&>(__gnu_cxx::__normal_iterator<pci_device**, std::vector<pci_device*, std::allocator<pci_device*> > >, pci_device* const&)+0x006f)
0000007c5c979670: 00007ff6c3913a09 (std::vector<std::unique_ptr<ram_state, std::default_delete<ram_state> >, std::allocator<std::unique_ptr<ram_state, std::default_delete<ram_state> > > >::~vector()+0x00b9)
0000007c5c9796e0: 00007ff6c1be7e38 (device_finder<bbc_userport_slot_device, true>::findit(bool)+0x0108)
0000007c5c979840: 00007ff6c1be4dff (device_finder<astrocade_rl64ram_device, true>::findit(bool)+0x00ef)
0000007c5c97ed60: 00007ff6c534fe8b (abc800_state::common(machine_config&)+0x0adf)
0000007c5c97f140: 00007ff6c94dd91f (register_frame_ctor+0x39fc29f)
0000007c5c97f400: 00007ff6c94ddf2d (register_frame_ctor+0x39fc8ad)
0000007c5c97f460: 00007ff6c534a509 (delegate_base<void, palette_device&>::operator=(delegate_base<void, palette_device&> const&) [clone .part.55]+0x00b5)
0000007c5c97f820: 00007ff6cb09cd43 (luaopen_lfs+0xeac8d3)
0000007c5c97f8f0: 00007ff6bd1213b1 (__tmainCRTStartup+0x0231)
0000007c5c97f920: 00007ff6bd1214e6 (mainCRTStartup+0x0006)
0000007c5c97f950: 00007ffa48927614 (BaseThreadInitThunk+0x0014)
0000007c5c97f9d0: 00007ffa4a0026b1 (RtlUserThreadStart+0x0021)

Simply adding -nodrc option to the commandline fixes the use and the Operation System boots normally.

Seems bug is related to Dynamic recompiling and zero pointer.
再現手順Start MAME and try to load IRIX operating system:

mame indy_4610 -hard1 "software/irix62.chd"
追加情報IRIX was first configured with
> setenv -f eaddr 08:00:69:12:34:56
> setenv monitor h
> auto

There is possible walkaround of this bug with different network settings or using MAME compiled version with LAN enabled/disabled for this specific system.
 
添付ファイル