[Scummvm-tracker] [ScummVM :: Bugs] #15487: SCUMM: MONKEY2 (MAC): segfault when typing 'rough' right at the start of the game

ScummVM :: Bugs trac at scummvm.org
Fri Nov 15 20:19:35 UTC 2024


#15487: SCUMM: MONKEY2 (MAC): segfault when typing 'rough' right at the start of
the game
----------------------+------------------------------
Reporter:  dwatteau   |       Owner:  (none)
    Type:  defect     |      Status:  new
Priority:  normal     |   Component:  Engine: SCUMM
 Version:             |  Resolution:
Keywords:  macintosh  |        Game:  Monkey Island 2
----------------------+------------------------------
Comment (by dwatteau):

 Thanks. Following some Discord discussions, I can confirm that I'm
 building from an up-to-date tree, with no weird remnants or whatever.

 Compiler is clang++ 15 (Apple's own version, which often is closer to the
 next release, with their own changes, if my memory serves me well).

 So far, I haven't been able to replicate the issue on my other
 Linux/OpenBSD environments, although I'm using the same files...

 Having the files untouched with their original resource forks (since I'm
 running the game from an APFS volume), or having them `macbinary` encoded
 doesn't change anything. So I don't think it's related to this either.

 I don't think my config has anything weird:

 {{{
 [monkey2-mac]
 extra=Mac
 engineid=scumm
 original_gui=false
 gui_saveload_last_pos=5
 platform=macintosh
 music_driver=auto
 talkspeed=85
 subtitles=true
 opl_driver=auto
 guioptions=sndNoSpeech midiMac noAspect macintosh gameOption2 gameOption4
 gameOption7 lang_English
 description=Monkey Island 2: LeChuck's Revenge (Macintosh/English)
 path=/path/to/game
 enhancements=511
 gameid=monkey2
 language=en
 }}}

 Anyway, I can attach the process to LLDB when the error is triggered:

 {{{
 User picked target 'monkey2-mac' (engine ID 'scumm', game ID 'monkey2')...
 Process 19576 stopped
 * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS
 (code=1, address=0x22)
     frame #0: 0x000000010035d196
 scummvm`Scumm::MacGuiImpl::MacDialogWindow::MacDialogWindow(this=0x00006110001bbd80,
 gui=0x00006150001e0a80, system=0x0000614000000640,
 from=0x00006030002247d0, bounds=(top = 128, left = 86, bottom = 214, right
 = 426), windowStyle=kWindowStyleNormal, menuStyle=kMenuStyleDisabled) at
 macgui_dialogwindow.cpp:46:6
    43           // Only apply menu style if the menu is open.
    44           Graphics::MacMenu *menu = _gui->_windowManager->getMenu();
    45
 -> 46           if (!menu->_active)
    47                   menuStyle = kMenuStyleNone;
    48
    49           _black = _gui->getBlack();
 Target 0: (scummvm) stopped.
 (lldb) bt
 * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS
 (code=1, address=0x22)
   * frame #0: 0x000000010035d196
 scummvm`Scumm::MacGuiImpl::MacDialogWindow::MacDialogWindow(this=0x00006110001bbd80,
 gui=0x00006150001e0a80, system=0x0000614000000640,
 from=0x00006030002247d0, bounds=(top = 128, left = 86, bottom = 214, right
 = 426), windowStyle=kWindowStyleNormal, menuStyle=kMenuStyleDisabled) at
 macgui_dialogwindow.cpp:46:6
     frame #1: 0x000000010035ffb9
 scummvm`Scumm::MacGuiImpl::MacDialogWindow::MacDialogWindow(this=0x00006110001bbd80,
 gui=0x00006150001e0a80, system=0x0000614000000640,
 from=0x00006030002247d0, bounds=(top = 128, left = 86, bottom = 214, right
 = 426), windowStyle=kWindowStyleNormal, menuStyle=kMenuStyleDisabled) at
 macgui_dialogwindow.cpp:42:249
     frame #2: 0x000000010037ab39
 scummvm`Scumm::MacGuiImpl::createWindow(this=0x00006150001e0a80,
 bounds=(top = 128, left = 86, bottom = 214, right = 426),
 windowStyle=kWindowStyleNormal, menuStyle=kMenuStyleDisabled) at
 macgui_impl.cpp:633:13
     frame #3: 0x000000010037bd24
 scummvm`Scumm::MacGuiImpl::createDialog(this=0x00006150001e0a80,
 dialogId=502) at macgui_impl.cpp:686:28
     frame #4: 0x00000001003820db
 scummvm`Scumm::MacGuiImpl::runOkCancelDialog(this=0x00006150001e0a80,
 text=String @ 0x00007ff7bfef9280) at macgui_impl.cpp:954:28
     frame #5: 0x00000001003dbf63
 scummvm`Scumm::MacV5Gui::handleEvent(this=0x00006150001e0a80, event=Event
 @ 0x00007ff7bfef9500) at macgui_v5.cpp:951:11
     frame #6: 0x000000010035bf0a
 scummvm`Scumm::MacGui::handleEvent(this=0x0000602000081570, event=Event @
 0x00007ff7bfef9660) at macgui.cpp:84:16
     frame #7: 0x000000010033d1d4
 scummvm`Scumm::ScummEngine::parseEvent(this=0x000000011e92b800,
 event=Event @ 0x00007ff7bfefa190) at input.cpp:115:26
     frame #8: 0x000000010034166a
 scummvm`Scumm::ScummEngine::parseEvents(this=0x000000011e92b800) at
 input.cpp:357:3
     frame #9: 0x0000000100699227
 scummvm`Scumm::ScummEngine::waitForTimer(this=0x000000011e92b800,
 quarterFrames=24, freezeMacGui=false) at scumm.cpp:2640:3
     frame #10: 0x0000000100698acc
 scummvm`Scumm::ScummEngine::go(this=0x000000011e92b800) at
 scumm.cpp:2597:3
     frame #11: 0x000000010017f74e
 scummvm`Scumm::ScummEngine::run(this=0x000000011e92b800) at scumm.h:585:10
     frame #12: 0x000000010004b960
 scummvm`runGame(enginePlugin=0x000060300005f7d0,
 system=0x0000614000000640, game=0x00007ff7bfefdd70,
 meDescriptor=0x0000000000000000) at main.cpp:311:33
     frame #13: 0x00000001000453e1 scummvm`scummvm_main(argc=1,
 argv=0x00007ff7bfeff6c8) at main.cpp:796:13
     frame #14: 0x00000001000331d3 scummvm`main(argc=1,
 argv=0x00007ff7bfeff6c8) at macosx-main.cpp:44:12
     frame #15: 0x00007ff80bc7f418 dyld`start + 1896
 (lldb) p menu
 (Graphics::MacMenu *) nullptr
 }}}

 If you see anything to explore from there, feel free to ask me so :)
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15487#comment:3>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list