カテゴリ | 重要度 | ステータス | 解決状況 | 登録日時 | 最終更新 |
---|---|---|---|---|---|
クラッシュ/フリーズ | 重要 (本体) | 解決済み | 修正済み | 2016-07-01 14:08 | 2016-07-01 15:06 |
テスター | cuavas | 担当者 | cuavas | ソース | |
バージョン | 0.175 | 発生バージョン | 修正バージョン | 0.176 | |
修正コミット | プルリク | ||||
フラグ | |||||
セット | |||||
セット詳細 | |||||
概 要 | 言語を切り替えるとMAMEがクラッシュする。 | ||||
詳 細 | This is reproducible on Windows and Linux with the latest source from git (mame0171-3623-g507cb50). The easiest way to reproduce the crash is select a language that has a proper external translation, switch to a language that lacks a proper external translation, and then try to switch language again. Stack trace is from a 64-bit Linux build, but the same thing happens on Windows as well. I don't know if this happens in 0.175 or if it's somehow related to Nathan's refactoring of the menu code. Program received signal SIGSEGV, Segmentation fault. 0x000000351348636a in strlen () from /lib64/libc.so.6 (gdb) where #0 0x000000351348636a in strlen () from /lib64/libc.so.6 #1 0x000000000090dabb in render_font::utf8string_width (this=0x1e0c820, height=height@entry=0.0326651819, aspect=aspect@entry=0.746674061, utf8string=utf8string@entry=0x7c00000077 <error: Cannot access memory at address 0x7c00000077>) at ../../../../../src/emu/rendfont.cpp:445 #2 0x000000000058ef7c in mame_ui_manager::get_string_width (this=0x1db4590, s=s@entry=0x7c00000077 <error: Cannot access memory at address 0x7c00000077>, text_size=text_size@entry=1) at ../../../../../src/frontend/mame/ui/ui.cpp:508 #3 0x00000000005f9658 in ui::menu::draw (this=this@entry=0x49b7d60, flags=flags@entry=0, origx0=<optimized out>, origy0=<optimized out>) at ../../../../../src/frontend/mame/ui/menu.cpp:731 #4 0x000000000060443a in ui::menu::process (this=this@entry=0x49b7d60, flags=flags@entry=0, x0=x0@entry=0, y0=y0@entry=0) at ../../../../../src/frontend/mame/ui/menu.cpp:401 #5 0x000000000061004c in ui::menu_selector::handle (this=0x49b7d60) at ../../../../../src/frontend/mame/ui/selector.cpp:59 #6 0x000000000060068b in do_handle (this=<optimized out>) at ../../../../../src/frontend/mame/ui/menu.cpp:1236 #7 ui::menu::ui_handler (container=<optimized out>, mui=...) at ../../../../../src/frontend/mame/ui/menu.cpp:1257 #8 0x0000000000599923 in operator() (container=<optimized out>, __closure=<optimized out>) at ../../../../../src/frontend/mame/ui/ui.h:193 #9 std::_Function_handler<unsigned int (render_container*), void mame_ui_manager::set_handler<mame_ui_manager&>(ui_callback_type, unsigned int (*)(render_container*, mame_ui_manager&), mame_ui_manager&)::{lambda(render_container*)#1}>::_M_invoke(std::_Any_data const&, render_container*&&) (__functor=..., __args#0=<optimized out>) at /opt/anteline/gcc51/include/c++/5.1.1/functional:1857 #10 0x0000000000591465 in operator() (__args#0=0x1765c20, this=0x1db45b8) at /opt/anteline/gcc51/include/c++/5.1.1/functional:2271 #11 mame_ui_manager::update_and_render (this=0x1db4590, container=0x1765c20) at ../../../../../src/frontend/mame/ui/ui.cpp:400 #12 0x0000000000549ebf in emulator_info::draw_user_interface (machine=...) at ../../../../../src/frontend/mame/mame.cpp:330 #13 0x00000000009638a8 in video_manager::frame_update (this=0x1db4740, from_debugger=from_debugger@entry=false) at ../../../../../src/emu/video.cpp:225 #14 0x00000000008f908c in running_machine::run (this=this@entry=0x7fffffff6b10, quiet=quiet@entry=true) at ../../../../../src/emu/machine.cpp:346 #15 0x000000000054ac61 in mame_machine_manager::execute (this=this@entry=0x1705610) at ../../../../../src/frontend/mame/mame.cpp:226 #16 0x00000000005b7789 in cli_frontend::execute (this=this@entry=0x7fffffffd800, argc=argc@entry=3, argv=argv@entry=0x7fffffffdc98) at ../../../../../src/frontend/mame/clifront.cpp:282 #17 0x0000000000549e6d in emulator_info::start_frontend (options=..., osd=..., argc=argc@entry=3, argv=argv@entry=0x7fffffffdc98) at ../../../../../src/frontend/mame/mame.cpp:325 #18 0x0000000000437466 in main (argc=3, argv=0x7fffffffdc98) at ../../../../../src/osd/sdl/sdlmain.cpp:214 | ||||
再現手順 | 1. Start MAME with a translation loaded with no machine, e.g. ./mametiny64 -language Italian 2. Tab to bottom pane of UI, select "Configura Opzioni" (first item) and press return/enter 3. Select "Personalizza UI" (first item after the separator) and press return/enter 4. Select "Lingua" (third item) and press return/enter 5. If you're lucky, MAME will crash, if not keep going 6. Select "Ukrainian" and press return/enter 7. Press escape twice to reload the main menu with the new options 8. Tab to bottom pane of UI, select "Configure Options" (first item) and press return/enter 9. Select "Customize UI" (first item after the separator) and press return/enter 10. Select "Language" (third item) and press return/enter 11. MAME should definitely crash this time if it didn't already at step 5 | ||||
追加情報 | |||||
添付ファイル |