Opened 7 years ago

Closed 3 years ago

Last modified 3 years ago

#6112 closed defect (fixed)

DREAMWEB: Crash after Intro on OS X

Reported by: SF/aculotarpa Owned by: criezy
Priority: high Component: Engine: Dreamweb
Keywords: Cc:
Game: Dreamweb

Description

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

Ticket imported from: #3553538. Ticket imported from: bugs/6112.

Attachments (1)

DW_ITA_10.8.0_Error.zip (3.4 KB) - added by SF/aculotarpa 7 years ago.

Download all attachments as: .zip

Change History (47)

comment:1 Changed 7 years ago by digitall

aculotarpa: Thank you for filing a bug report. Please supply the following to help us debug this:
1. Please confirm your Dreamweb release version and language? The dreamweb-it seems to indicate that this is detected as an Italian language variant? Is this correct?
2. Please attach a text file to this bug with a file listing of your Dreamweb datafiles along with file MD5sums. The output of a tool such as http://md5summer.org/ would be optimal.
There are other tools available. See:
http://wiki.scummvm.org/index.php/Reporting_unknown_MD5_checksums
Note: We need the full file md5sum checksums, rather than the restricted size ones used for detection... so simple "md5sum *" would be fine.

This is to allow us to unique identify your version, work out if this is due to a corrupted datafile or variant version and identify the datafiles which vary.
3) Running ./scummvm -d 10 at the command line and attaching the log file output of debug and warning as a text file may also be useful.

comment:2 Changed 7 years ago by digitall

Owner: set to digitall
Status: newpending
Summary: Dreamweb crash after intro on OS X 10.8.0DREAMWEB: Crash after intro on OS X 10.8.0

Changed 7 years ago by SF/aculotarpa

Attachment: DW_ITA_10.8.0_Error.zip added

comment:3 Changed 7 years ago by SF/aculotarpa

Status: pendingnew

comment:4 Changed 7 years ago by SF/aculotarpa

Yes, it's Dreamweb Floppy Italian version.
Attached you'll find the md5 checksum and the detailed log file, I hope it's all correct.

comment:5 Changed 7 years ago by digitall

aculotarpa: Thank you for the information.

I have just realised that you are reporter of bug #3523338 - "DREAMWEB: Incorrect Charset in Italian Version" which was fixed 2012-05-04, but not confirmed by yourself.
http://sourceforge.net/tracker/?func=detail&aid=3523338&group_id=37116&atid=418820

Could you confirm the following:
1. Did this fix solve the problem for you and allow you to play Dreamweb with these datafiles?
2. If this has been working for you with recent nightly builds from Buildbot?
3. If this broke when you upgraded to OSX 10.8.0 or when you updated a ScummVM version?

i.e. This will tell us if this is a regression in ScummVM, did we never fix the issue correctly or if OSX 10.8.0 has broken some API....

The md5sums you attached match the ones previously supplied, but are completely at variance with all the English Floppy/CD versions I have, so having to debug at a distance.

comment:6 Changed 7 years ago by digitall

aculotarpa: One other thing to try. Please try running your Dreamweb ITA Floppy version with ScummVM v1.5.0 on a Win32 or Linux box and see if the same problem or similar crash is observed? i.e. trying to work out if the bug is caused by your Dreamweb ITA version on all platforms or just on OSX.

comment:7 Changed 7 years ago by SF/aculotarpa

I'm sorry for the lack of comments on the previous bugfix (bug #3523338), but the ticket was closed before I had the possibility to confirm.
Anyway, the italian version displayed the right characters since then

Regarding this bug (#3553538), I can confirm my version of the game works fine on Win32 and Wii 1.5.0 stable builds.

I did'nt used ScummVM in the last weeks, the svn from early july worked fine. I only checked the stable build since I upgraded to 10.8.0 some days ago and noticed Dreamweb was not working reading a post in the forum, so I cannot confirm when the problem appeared.

comment:8 Changed 7 years ago by digitall

OK Thanks, so this does appear to be an OSX specific issue. Unfortunately, I don't have any OSX boxes, so this may take a while to debug. Please stand by.

comment:9 Changed 7 years ago by (none)

With SCUMMVM 1.5.0 on OS X 10.8, Dreamweb US CD crashes immediately after the intro reporting the following:

User picked target 'dreamweb-cd-us' (gameid 'dreamweb')...
Looking for a plugin supporting this gameid... DreamWeb engine
Starting 'DreamWeb'
scummvm(769,0xac1c2a28) malloc: *** error for object 0x274fcb4: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Bus error: 10

comment:10 Changed 7 years ago by digitall

Chilijohn: Thank you for confirming this. Definately an OSX specific issue, rather than Dreamweb version dependent.

aculotarpa / Chilijohn: Can you confirm if you see the same problem with the current v1.6.0git development build?:
http://buildbot.scummvm.org/builds.html

comment:11 Changed 7 years ago by SF/aculotarpa

Yes, same error at same point with

ScummVM 1.6.0git240-g52a1a6e (Aug 3 2012 04:14:32)
Features compiled in: TAINTED Vorbis FLAC MP3 SEQ TiMidity RGB zLib

BUT
I have tried to run the game with a 3x scaler and it crashed at the same point but returning the following error

WARNING: SDL_SetVideoMode says we can't switch to that mode (No video mode large enough for 640x480)!

Running the game with OpenGL renderer Works fine!!

Maybe, it's an issue with SDL under 10.8.0

comment:12 Changed 7 years ago by digitall

OK Thanks... Again, I don't have an OSX box and few of the developers do, so we will need you to provide sufficient debug information to pin this down.

1. Could you run the development version of ScummVM under gdb i.e. gdb ./scummvm. At the command line, just type "run" then play the game to the crash, the gdb console will appear again, then type "bt" (backtrace) and post the result here. If more than 5-10 lines, please attach as a text file.

See https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/gdb.1.html for further details on usage.

2. Running this under Valgrind would provide a better and more complete trace: http://www.valgrind.org/
This is supported on OSX, but it may need some work to put it together. There may be a port in FinkPorts or similar.
If you manage to do this and get output, please attach as a text file.

comment:13 Changed 7 years ago by criezy

I started looking at this. Here is what I found (with the french version):
1. Release 1.5.0 crashes on both MacOS X 10.6 and MacOS X 10.8. So this is not specific to 10.8. (the error is the same as the one reported above).
2. With the daily build from builbot (1.6.0git240-g52a1a6e) it does not crash on either system.
3. With my own 1.6.0git build it does not crash either.
4. With my own 1.5.0 build it does not crash either.

So the only version I could reproduce the crash with is the 1.5.0 release build on our download page. I suspect there is an issue with that build, not with our source code.

For my own builds I am using SDL 1.2.14 on my OS X 10.6 box and 1.2.15 on the 10.8 box.
For my 1.5.0 build I have tried both with and without --enable-release with the same result (it works in both cases).

comment:14 Changed 7 years ago by criezy

And by the way if you really want the backtrace, here it is. But since I can only reproduce it with the release build it does not look very useful.

#0 0x002a8842 in ?? ()
#1 0x0029c4b2 in ?? ()
#2 0x0029d31f in ?? ()
#3 0x0029d381 in ?? ()
#4 0x002a083d in ?? ()
#5 0x00295858 in ?? ()
#6 0x00006573 in ?? ()
#7 0x00007296 in ?? ()
#8 0x000049e7 in ?? ()
#9 0x00be0c1b in ?? ()
#10 0x97c62d92 in __57-[NSNotificationCenter addObserver:selector:name:object:]_block_invoke_0 ()
#11 0x9a550481 in ___CFXNotificationPost_block_invoke_0 ()
#12 0x9a49bb5a in _CFXNotificationPost ()
#13 0x97c4b8c8 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#14 0x962470ce in -[NSApplication _postDidFinishNotification] ()
#15 0x96246d88 in -[NSApplication _sendFinishLaunchingNotification] ()
#16 0x96243cef in -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] ()
#17 0x96243804 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#18 0x9244c628 in -[NSObject performSelector:withObject:withObject:] ()
#19 0x97c6637a in __76-[NSAppleEventManager setEventHandler:andSelector:forEventClass:andEventID:]_block_invoke_0 ()
#20 0x97c65ed1 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#21 0x97c65cce in _NSAppleEventManagerGenericHandler ()
#22 0x9a3895b3 in aeDispatchAppleEvent ()
#23 0x9a35fdde in dispatchEventAndSendReply ()
#24 0x9a35fc9d in aeProcessAppleEvent ()
#25 0x94092394 in AEProcessAppleEvent ()
#26 0x9623fdfd in _DPSNextEvent ()
#27 0x9623f28c in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#28 0x962356dc in -[NSApplication run] ()
#29 0x00be1388 in ?? ()
#30 0x00002d02 in ?? ()
#31 0x00002c29 in ?? ()

comment:15 Changed 7 years ago by SF/aculotarpa

Ok, fisrt I have updated to

ScummVM 1.6.0git244-gde752a5 (Aug 5 2012 04:14:11)
Features compiled in: TAINTED Vorbis FLAC MP3 SEQ TiMidity RGB zLib

- Playing in window mode works at any scale factor.
- In fullscreen mode it works at 1x or 2x (any scaler) but doesn't fullfill the screen (black frame all around).
- In fullscreen at 3x (any scaler) it crashes.
- In OpenGL works always fullfilling the entire screen at correct 4:3 ar (the software renderers always give stretched image, disregarding the options in graphic tab)

I'm sorry, but I was not able to produce a backtrace using gdb, the use of Developers Tools goes far beyond my skills :(

comment:16 Changed 7 years ago by digitall

aculotarpa: That is probably a different issue due to user error.

Try run ScummVM from a command line and you will then be able to see any error messages on "crash".
I would suspect that ScummVM is shutting down with an error as it can't find a large enough graphics output i.e.
As applying 3x Scaler to 640x480 means the output window would be 1920x1440 and I doubt your real screen can do that resolution at fullscreen. If it is crashing, that is still probably due to this.

comment:17 Changed 7 years ago by digitall

Chilijohn / aculotarpa:

GDB is not hard to use. Please can you run a version which exhibits the crash under it and get a backtrace.

This is purely a case of running "gdb ./scummvm" at a command line, then typing "run", play the game to the crash and then type "bt" at the gdb command line and copying the messages produced to a text file and attaching to this bug.

comment:18 Changed 7 years ago by criezy

aculotarpa: Fullscreen 3x for me displays an error message in ScummVM at the start of the intro: "Could not switch to resolution: '640x480'." When clicking on OK ScummVM closes. Do you have a different behaviour?

comment:19 Changed 7 years ago by digitall

Chilijohn / aculotarpa: Apologies. I have spoken to criezy and I was unaware that despite OSX being billed as an open Unix platform, it does not come bundled with GCC/GDB or other compiler tools... and installing XCode is a PITA requiring a developer account from Apple (which though free to get). This makes debugging on OSX a PITA and probably explains why we have a number of open and undiagnosed bugs on OSX.

Please see http://www.finkproject.org/ which provides the ability to install open tools such as GCC and GDB in a simple manner without requiring banging your head on Apple's control freakery and paranoia.

comment:20 Changed 7 years ago by criezy

Running valgrind on a nightly build doesn't give any error. On the 1.5.0 release it gives me the following just before the crash. Since there is no debug symbols I am afraid it is not very useful however.

==46092== Invalid free() / delete / delete[] / realloc()
==46092== at 0x123743A: free (vg_replace_malloc.c:430)
==46092== by 0x2A884C: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x29C4B1: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x29D31E: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x29D380: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x2A083C: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x295857: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x6572: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x7295: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x49E6: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0xBE0C1A: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x4E67E5B: _nsnote_callback (in /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation)
==46092== Address 0x1782bb94 is 117,940 bytes inside a block of size 134,780 alloc'd
==46092== at 0x1237581: malloc (vg_replace_malloc.c:266)
==46092== by 0x18F8616: operator new(unsigned long) (in /usr/lib/libstdc++.6.0.9.dylib)
==46092== by 0x293F8E: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0xAB82C8: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x5FA1: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x7295: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x49E6: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0xBE0C1A: ??? (in ScummVM 1.5.0.app/Contents/MacOS/scummvm)
==46092== by 0x4E67E5B: _nsnote_callback (in /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation)
==46092== by 0x1BF7762: __CFXNotificationPost (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==46092== by 0x1BF7169: _CFXNotificationPostNotification (in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation)
==46092== by 0x4E5CC4F: -[NSNotificationCenter postNotificationName:object:userInfo:] (in /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation)

comment:21 Changed 7 years ago by (none)

I can confirm that the 8/7/2012 nightly build is working with Dreamweb CD US and I see the same crash using 3x scalers in Fullscreen Mode, though not Windowed, on my 1440x900 MacBook Pro. Also there are two different errors generated for the 3x & HQX 3x and AdvMAME 3x:

3x / HQX 3x: "Bus Error: 10"

AdvMAME 3x: "WARNING: SDL_SetVideoMode says we can't switch to that mode (No video mode large enough for 960x600)!"

Regarding screen rendering, the 2x modes are letterboxed with what looks like a 320x200 game area inside a 320x240 frame with or without Aspect Ratio Correction enabled. OpenGL corrected has only a vertical stretch while uncorrected fills the screen without significant distortion, but looks a bit rough at 1440x900 without filtering.

comment:22 Changed 7 years ago by SF/aculotarpa

I'd want to add, any other game with 640x480 resolution (Monkey 3, Brocken Sword, Discworld 2 etc...), when launched with a 3x scaler, automatically fallbacks to a lower working scaler. I suppose Dreamweb should do the same.

comment:23 Changed 7 years ago by digitall

Owner: changed from digitall to vinterstum

comment:24 Changed 7 years ago by eriktorbjorn

Slightly off topic, but most (all?) game engines assume that the default scaler only applies to low-resolution games. Setting a 3x scaler specifically for a high-resolution game should work, though.

comment:25 Changed 6 years ago by vinterstum

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

comment:26 Changed 6 years ago by vinterstum

The crash is only reproducible with optimizations on (--enable-release), which may be why people have had problems seeing this in their own builds.

comment:27 Changed 6 years ago by SF/aculotarpa

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.

comment:28 Changed 6 years ago by wjp

As far as I can tell that backtrace indicates a corrupt list data structure. Do you have access to valgrind or something equivalent?

comment:29 Changed 6 years ago by wjp

A compiler bug is also starting to sound plausible, by the way.

comment:30 Changed 6 years ago by digitall

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.

comment:31 Changed 6 years ago by sev-

Priority: normalhigh

comment:32 Changed 6 years ago by sev-

This bug is nice to get fixed before the release. Raising priority for keeping the track.

comment:33 Changed 6 years ago by digitall

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?

comment:34 Changed 5 years ago by criezy

Unfortunately I can confirm this is still occurring with 1.7.0 release.

comment:35 Changed 5 years ago by digitall

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?

comment:36 Changed 5 years ago by criezy

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.

comment:37 Changed 5 years ago by vinterstum

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).

comment:38 Changed 5 years ago by digitall

"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?

comment:39 Changed 5 years ago by criezy

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.

comment:40 Changed 5 years ago by digitall

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

comment:41 Changed 5 years ago by lordhoto

Summary: DREAMWEB: Crash after intro on OS X 10.8.0DREAMWEB: Crash after Intro on OS X

comment:42 Changed 5 years ago by lordhoto

Another duplicate has been reported as #6698.

comment:43 Changed 3 years ago by wjp

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.

comment:44 Changed 3 years ago by SF/aculotarpa

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.

2016-02-05 23:13:07.249 scummvm[3805:1382689] 23:13:07.248 WARNING:  140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.
User picked target 'dreamweb-it' (gameid 'dreamweb')...
  Looking for a plugin supporting this gameid... DreamWeb engine
  Starting 'DreamWeb'
2016-02-05 23:13:42.945 scummvm[3805:1382689] -[__NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance 0x2753120
2016-02-05 23:13:42.945 scummvm[3805:1382689] -[__NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance 0x2753120
Killed: 9

comment:45 Changed 3 years ago by criezy

Owner: changed from vinterstum to criezy
Resolution: fixed
Status: newclosed

comment:46 Changed 3 years ago by criezy

The ScummVM 1.8.0 release was built with a different toolchain and doesn't exhibit this crash.

Note: See TracTickets for help on using tickets.