ScummVM 1.5.0 stable
OS X 10.8.0
The game crashes right after the third intro sequence (the credits and tiles) with this error on console
User picked target 'dreamweb-it' (gameid 'dreamweb')...
Looking for a plugin supporting this gameid... DreamWeb engine
Starting 'DreamWeb'
scummvm(1294,0xac617a28) malloc: *** error for object 0x8922cb4: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Bus error: 10
Any other game seems working fine
User picked target 'dreamweb' (gameid 'dreamweb')...
Looking for a plugin supporting this gameid... DreamWeb engine
Starting 'DreamWeb'
scummvm-static(445,0xac583a28) malloc: *** error for object 0x1141ccb4: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000004
DreamWeb::DreamWebEngine::showAllObs (this=0x11400000) at ../scummvm/common/list.h:196
196 pos = pos->_next;
(gdb) bt
#0 DreamWeb::DreamWebEngine::showAllObs (this=0x11400000) at ../scummvm/common/list.h:196
#1 0x0029c4b2 in DreamWeb::DreamWebEngine::drawFloor (this=0x11400000) at ../scummvm/engines/dreamweb/stubs.cpp:2115
#2 0x0029d31f in DreamWeb::DreamWebEngine::startup (this=0x11400000) at ../scummvm/engines/dreamweb/stubs.cpp:808
#3 0x0029d381 in DreamWeb::DreamWebEngine::startup1 (this=0x11400000) at ../scummvm/engines/dreamweb/stubs.cpp:822
#4 0x002a083d in DreamWeb::DreamWebEngine::dreamweb (this=0x11400000) at ../scummvm/engines/dreamweb/stubs.cpp:667
#5 0x00295858 in DreamWeb::DreamWebEngine::run (this=0x11400000) at ../scummvm/engines/dreamweb/dreamweb.cpp:379
#6 0x00006573 in runGame (plugin=0xe124920, system=@0xe32d1f0, edebuglevels=@0xbfffee18) at ../scummvm/base/main.cpp:225
#7 0x00007296 in scummvm_main (argc=1, argv=0xd529cb0) at ../scummvm/base/main.cpp:451
#8 0x000049e7 in SDL_main (argc=1, argv=0xd529cb0) at ../scummvm/backends/platform/sdl/macosx/macosx-main.cpp:45
#9 0x00be0c1b in -[SDLMain applicationDidFinishLaunching:] (self=0xe427aa0, _cmd=0xde7080, note=0xe32d160) at ./src/main/macosx/SDLMain.m:300
#10 0x91967c52 in __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 ()
#11 0x99cd9e01 in ___CFXNotificationPost_block_invoke_0 ()
#12 0x99c2543a in _CFXNotificationPost ()
#13 0x91950788 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#14 0x957e918e in -[NSApplication _postDidFinishNotification] ()
#15 0x957e8e48 in -[NSApplication _sendFinishLaunchingNotification] ()
#16 0x957e5d9f in -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] ()
#17 0x957e58b4 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#18 0x9798c628 in -[NSObject performSelector:withObject:withObject:] ()
#19 0x9196b23a in __76-[NSAppleEventManager setEventHandler:andSelector:forEventClass:andEventID:]_block_invoke_0 ()
#20 0x9196ad91 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#21 0x9196ab8e in _NSAppleEventManagerGenericHandler ()
#22 0x90fd3535 in aeDispatchAppleEvent ()
#23 0x90fa99de in dispatchEventAndSendReply ()
#24 0x90fa989d in aeProcessAppleEvent ()
#25 0x9409fe48 in AEProcessAppleEvent ()
#26 0x957e1ddd in _DPSNextEvent ()
#27 0x957e126c in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#28 0x957d76cc in -[NSApplication run] ()
#29 0x00be1388 in main (argc=1, argv=0xbffffc10) at ./src/main/macosx/SDLMain.m:227
Current language: auto; currently c++
(gdb) b malloc_error_break
Breakpoint 1 at 0x94a0d81b
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /Volumes/Store/Src/scummvm/osx-intel/scummvm-static
Reading symbols for shared libraries . done
Reading symbols for shared libraries + done
Reading symbols for shared libraries . done
WARNING: You are missing a valid 'translations.dat' file. GUI translation will not be available!
WARNING: Could not find theme 'scummmodern' falling back to builtin!
User picked target 'dreamweb' (gameid 'dreamweb')...
Looking for a plugin supporting this gameid... DreamWeb engine
Starting 'DreamWeb'
scummvm-static(459,0xac583a28) malloc: *** error for object 0x1078fcb4: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Breakpoint 1, 0x94a0d81b in malloc_error_break ()
(gdb) bt
#0 0x94a0d81b in malloc_error_break ()
#1 0x94a0ed51 in free ()
#2 0x002a884d in DreamWeb::DreamWebEngine::showAllObs (this=0x10773000) at ../scummvm/common/list.h:197
#3 0x0029c4b2 in DreamWeb::DreamWebEngine::drawFloor (this=0x10773000) at ../scummvm/engines/dreamweb/stubs.cpp:2115
#4 0x0029d31f in DreamWeb::DreamWebEngine::startup (this=0x10773000) at ../scummvm/engines/dreamweb/stubs.cpp:808
#5 0x0029d381 in DreamWeb::DreamWebEngine::startup1 (this=0x10773000) at ../scummvm/engines/dreamweb/stubs.cpp:822
#6 0x002a083d in DreamWeb::DreamWebEngine::dreamweb (this=0x10773000) at ../scummvm/engines/dreamweb/stubs.cpp:667
#7 0x00295858 in DreamWeb::DreamWebEngine::run (this=0x10773000) at ../scummvm/engines/dreamweb/dreamweb.cpp:379
#8 0x00006573 in runGame (plugin=0xe639910, system=@0xe636530, edebuglevels=@0xbfffee18) at ../scummvm/base/main.cpp:225
#9 0x00007296 in scummvm_main (argc=1, argv=0xd538500) at ../scummvm/base/main.cpp:451
#10 0x000049e7 in SDL_main (argc=1, argv=0xd538500) at ../scummvm/backends/platform/sdl/macosx/macosx-main.cpp:45
#11 0x00be0c1b in -[SDLMain applicationDidFinishLaunching:] (self=0xd53d880, _cmd=0xde7080, note=0xe6364a0) at ./src/main/macosx/SDLMain.m:300
#12 0x91967c52 in __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 ()
#13 0x99cd9e01 in ___CFXNotificationPost_block_invoke_0 ()
#14 0x99c2543a in _CFXNotificationPost ()
#15 0x91950788 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#16 0x957e918e in -[NSApplication _postDidFinishNotification] ()
#17 0x957e8e48 in -[NSApplication _sendFinishLaunchingNotification] ()
#18 0x957e5d9f in -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] ()
#19 0x957e58b4 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#20 0x9798c628 in -[NSObject performSelector:withObject:withObject:] ()
#21 0x9196b23a in __76-[NSAppleEventManager setEventHandler:andSelector:forEventClass:andEventID:]_block_invoke_0 ()
#22 0x9196ad91 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#23 0x9196ab8e in _NSAppleEventManagerGenericHandler ()
#24 0x90fd3535 in aeDispatchAppleEvent ()
#25 0x90fa99de in dispatchEventAndSendReply ()
#26 0x90fa989d in aeProcessAppleEvent ()
#27 0x9409fe48 in AEProcessAppleEvent ()
#28 0x957e1ddd in _DPSNextEvent ()
#29 0x957e126c in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#30 0x957d76cc in -[NSApplication run] ()
#31 0x00be1388 in main (argc=1, argv=0xbffffc10) at ./src/main/macosx/SDLMain.m:227
The crash is only reproducible with optimizations on (--enable-release), which may be why people have had problems seeing this in their own builds.
I did'nt compile my own build, I use the nightly from official ScummVM Buildbot.
ScummVM 1.6.0git2137-gc11ab39 (Nov 23 2012 06:02:37)
Features compiled in: TAINTED Vorbis FLAC MP3 SEQ TiMidity RGB zLib
The error message with any 3x scaler now is
User picked target 'dreamweb-it' (gameid 'dreamweb')...
Looking for a plugin supporting this gameid... DreamWeb engine
Starting 'DreamWeb'
WARNING: SDL_SetVideoMode says we can't switch to that mode (No video mode large enough for 640x480)!
As always, this doesn't occur in Monkey3, Broken Sword or Discworld 2.
As far as I can tell that backtrace indicates a corrupt list data structure. Do you have access to valgrind or something equivalent?
A compiler bug is also starting to sound plausible, by the way.
wjp: I think that is likely, though -O2 optimisation levels are usually relatively safe.
vinterstum: I have fixed a number of minor issues in Dreamweb recently and wjp fixed a major issue with corruption of the _exFrames structure. Though I doubt that these are the cause of the issue observed here, could you try compiling the latest source code with release mode / optimisations enabled and see if the crash still occurs?
If so, the problem seems to be calling the clear() method on a Common::List which is newly constructed i.e.
The backtrace is associated with the _setList.clear() call at the start of the showAllObs() function in scummvm/engines/dreamweb/backdrop.cpp.
I would suggest cutting the code down to try to find a minimal test case for this, so we can try to locate a fix for either the code to avoid this or the exact compiler issue i.e. a minimal application using scummvm/common/list.h along with the objPos structure.
This bug is nice to get fixed before the release. Raising priority for keeping the track.
Well, this is still occuring with v1.6.0 release. Reported on the forums by somnolentsurfer:
"Using the release version of 1.6.0 on OS X 10.8.4, I get a crash to desktop just after the guy in the intro releases the floaty blue orb."
vinterstum: Any progress on fixing/avoiding this?
Unfortunately I can confirm this is still occurring with 1.7.0 release.
criezy: Unfortunately as expected as not fix for this has been applied. It only appears when optimisations are enabled for the OSX build. As I don't have an OSX machine, I can't replicate.
vinterstum has already used --enable-optimizations to produce an equivalent build to the release optimized build and replicated the error to get a gdb backtrace which is in an earlier comment... however this points to a nasty compiler optimization bug in the Common::List class usage... :/
Can you look at getting to this point yourself on your machine and then see if you can replicate?
digitall: I already tried in the past to compile my own version with optimizations and I tried again today just in case. But it doesn't crash with the versions I compile myself. And since I cannot replicate, I cannot really try to find a fix either.
I guess I would need to use the same compiler as the one used to compile the release.
I'll try to take a look. The toolchain used to build the release is the same Linux-based toolchain the buildbot is using, but its GCC version is pretty old at this point. If this is a compiler bug I'll see about updating it (maybe leaving the 10.2 PPC toolchain alone though; I doubt that'd work with anything more modern).
"Post awaiting moderation"?!? SIGH. Will talk to _sev or other sf.net project admin and get that fixed facepalm
http://wiki.scummvm.org/index.php/Compiling_ScummVM/Mac_OS_X doesn't list the compiler versions... and is a bit skeletal, but it appears that only vinterstum's toolchain compiler is affected
criezy: What compiler / toolchain are you using on OSX? Fink/Macports/Official? What binutils and gcc version please?
On my side I am using the official toolchains. The tests I did two years ago where with Xcode 4 (llvm-gcc 4.2.1) and the one I did today with XCode 5 (Apple LLVM version 5.1 clang-503.0.40 (based on LLVM 3.4svn)). Both produce working executables.
From the buildbot toolchains:
/opt/toolchains/i686-apple-darwin9-10.4/bin/i686-apple-darwin9-g++ --version
i686-apple-darwin9-g++ (GCC) 4.2.4
/opt/toolchains/i686-apple-darwin9-10.4/bin/i686-apple-darwin9-as -v
Apple Computer, Inc. version odcctools-622.3od16, GNU assembler version 1.38
/opt/toolchains/powerpc-apple-darwin8-10.2/bin/ppc-apple-darwin8-g++ --version
ppc-apple-darwin8-g++ (GCC) 4.2.4
/opt/toolchains/powerpc-apple-darwin8-10.2/bin/ppc-apple-darwin8-as -v
Apple Computer, Inc. version odcctools-622.3od16, GNU assembler version 1.38
Another duplicate has been reported as #6698.
With a new release approaching, I'd like to bring this back to everyone's attention. It would be nice if this doesn't affect our official 1.8.0 release build.
ScummVM 1.8.0git6493-g331a9f4 (Feb 5 2016 04:39:47) on OS X El Capitan 10.11.3
With fullscreen and any scaler but normal and OpenGL, right after the intro, it crashes. Windowed seems working.
The ScummVM 1.8.0 release was built with a different toolchain and doesn't exhibit this crash.