Opened 18 years ago
Closed 18 years ago
#3046 closed defect (fixed)
GOB: Sudden freeze
Reported by: | SF/bellut | Owned by: | DrMcCoy |
---|---|---|---|
Priority: | normal | Component: | Engine: Gob |
Version: | Keywords: | ||
Cc: | Game: | Gobliiins |
Description
Using latest SVN (last tested version: 25394) I get sudden freezes in Gobliiins and Gobliins 2. Sometimes the game freezes right at the beginning of the first screen, sometimes while doing the first screen and with Gobliiiins I even managed to solve the first screen before the game froze. Just now I got a freeze when quitting the game with ctrl-q.
When the game freezes it doesn't respong to anything but SIGKILL.
There's nothing special printed on the console, even with debug level 9.
Versions of Gobliins tested:
Gobliiins (DOS/VGA) Gobliiins CD (English (US)/DOS/v1.02) Gobliiins CD (German/DOS/v1.02) Gobliins 2 (English (US)/DOS) Gobliins 2 CD (English/DOS/v1.02) Gobliins 2 CD (German/DOS/v1.02)
i.e. english floppy versions and multi-language CD versions.
Let me know if you need any more information.
Ticket imported from: #1652551. Ticket imported from: bugs/3046.
Attachments (3)
Change History (20)
comment:1 by , 18 years ago
comment:2 by , 18 years ago
Owner: | set to |
---|
comment:3 by , 18 years ago
Ah, and I forgot: Could you provide some information about your system? OS, processor type, etc..
comment:4 by , 18 years ago
Here's some system info, debug output is attached. The freeze occured in Gobliiins, CD version, second screen when using magic on the rightmost apple. This worked with this exact version of scummvm and the game on a previous test. I was able to play Gobliiins without freezes in older versions of scummvm, unfortunately I didn't take note which version I used, the only thing I know is it's been an SVN version.
$ uname -a Linux nermal.bellut.net 2.4.19-32mdkcustom #1 Thu Jun 12 04:25:21 CEST 2003 i686 unknown unknown GNU/Linux $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 2.53GHz stepping : 7 cpu MHz : 2558.571 cache size : 512 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm bogomips : 5098.70
$ /lib/libc.so.6 GNU C Library stable release version 2.2.5, by Roland McGrath et al. Copyright (C) 1992-2001, 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 3.2 (Mandrake Linux 9.0 3.2-1mdk). Compiled on a Linux 2.4.18 system on 2003-03-21. Available extensions: GNU libio by Per Bothner crypt add-on version 2.1 by Michael Glad and others linuxthreads-0.9 by Xavier Leroy BIND-8.2.3-T5B libthread_db work sponsored by Alpha Processor Inc NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Report bugs using the `glibcbug' script to <bugs@gnu.org>.
$ gcc -v Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.2/specs Configured with: ../configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --enable-long-long --enable-__cxa_atexit --enable-languages=c,c++,ada,f77,objc,java --host=i586-mandrake-linux-gnu --with-system-zlib Thread model: posix gcc version 3.2 (Mandrake Linux 9.0 3.2-1mdk)
$ ldd bin/scummvm libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x40027000) libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x4002f000) libogg.so.0 => /usr/lib/libogg.so.0 (0x40057000) libFLAC.so.4 => /usr/lib/libFLAC.so.4 (0x4005c000) libmad.so.0 => /usr/lib/libmad.so.0 (0x40090000) libasound.so.2 => /usr/lib/libasound.so.2 (0x400ac000) libz.so.1 => /lib/libz.so.1 (0x40135000) libmpeg2.so.0 => /usr/lib/libmpeg2.so.0 (0x40144000) libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x40163000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x401e0000) libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x401f4000) libm.so.6 => /lib/i686/libm.so.6 (0x402b8000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x402db000) libc.so.6 => /lib/i686/libc.so.6 (0x402e3000) libdl.so.2 => /lib/libdl.so.2 (0x40403000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40407000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x404d2000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) File Added: gob.debug.bz2
comment:5 by , 18 years ago
Could you try again with the latest SVN version? Seems like _pressedMapX/_pressedMapY weren't correctly clipped, resulting in reading from invalid locations in _passMap, which could be accountable for the freezes.
comment:6 by , 18 years ago
Unfortunately, I got another freeze, I had to play to screen 5 (mummy) though, don't know if this has something to do with the modification (version tested was 25397). Interestingly, I get freezes much earlier in Gobliins 2 than in Gobliiins, somtimes even before the two goblins have finished being teleported. I'll attach two more debug outputs gob1.debug.bz2 freeze in Gobliiins, screen 5, gob2.debug.bz2 freeze in Gobliins 2, screen 1. File Added: gob1.debug.bz2
comment:8 by , 18 years ago
Hmm, the logs look normal. When did the freeze in gob2.debug happen? And could you run it again with debug output, but this time without redirecting it into a file? I'd like to now whether the output stops when a freeze occurs...
comment:9 by , 18 years ago
The freeze in gob2.debug happened when trying to get the bottle in screen 1. It could be related to moving while animation (here the old people) is happening. Yes the output stops when a freeze occurs, in Gobliiins and in Gobliins 2. scummvm just sits there, the sound stops, the screen isn't refreshed anymore and scummvm doesn't react to any keypress or ctrl-c. The only option is to send a SIGKILL.
comment:10 by , 18 years ago
Could you run the (unstripped) binary with gdb, stop the process when it freezes and give me a backtrace? (Sorry for all the hassle, but I don't get any freezes and therefore can't debug it directly)
comment:11 by , 18 years ago
killall -11 scummvm
when it is frozen. It will create a core dump
then
gdb scummvm scummvm.core
thread 1 bt thread 2 bt thread 3 bt
may be there are 4 threads.
And attach the output.
comment:12 by , 18 years ago
Sending a SIGSEGV doesn't work. I get "Fatal signal: Segmentation Fault (SDL Parachute Deployed)" and scummvm still hangs. Running scummvm under gdb I could produce this backtrace:
(gdb) bt #0 0x4030c479 in sigsuspend () from /lib/i686/libc.so.6 #1 0x401e7e58 in pthread_create () from /lib/i686/libpthread.so.0 #2 0x401e9de8 in sem_unlink () from /lib/i686/libpthread.so.0 #3 0x401e6d06 in pthread_mutex_lock () from /lib/i686/libpthread.so.0 #4 0x401ba9d8 in SDL_mutexP () from /usr/lib/libSDL-1.2.so.0 #5 0x08051c63 in OSystem_SDL::lockMutex(Common::OpaqueMutex*) ( this=0x860df70, mutex=0x8682bb0) at backends/platform/sdl/sdl.cpp:402 #6 0x0845fcc6 in Common::StackLock::lock() (this=0xbfffe140) at common/mutex.cpp:67 #7 0x0845fc4e in StackLock (this=0xbfffe140, mutex=@0x8682b4c, mutexName=0x0) at common/mutex.cpp:56 #8 0x08444c4f in Audio::Mixer::isSoundHandleActive(Audio::SoundHandle) ( this=0x8682b48, handle={_val = 82}) at sound/mixer.cpp:381 #9 0x0830c66c in Gob::Snd::playSample(Gob::Snd::SoundDesc*, short, short, short) (this=0x86a58a0, sndDesc=0x86666f0, repCount=1, frequency=5000, fadeLength=0) at engines/gob/sound.cpp:243 #10 0x08335720 in Gob::Goblin::playSounds(Gob::Mult::Mult_Object*) ( this=0x8679538, obj=0x8657260) at engines/gob/goblin.cpp:1794 #11 0x082dbe35 in Gob::Goblin_v2::moveAdvance(Gob::Mult::Mult_Object*, Gob::Goblin::Gob_Object*, short, short) (this=0x8679538, obj=0x8657260, gobDesc=0x0, nextAct=0, framesCount=0) at engines/gob/goblin_v2.cpp:316 #12 0x082fe783 in Gob::Mult_v2::animate() (this=0x86779f8) at engines/gob/mult_v2.cpp:1269 #13 0x082e2cf0 in Gob::Inter_v1::o1_animate() (this=0x86e0500) at engines/gob/inter_v1.cpp:1716 #14 0x082e77f7 in Gob::Inter_v2::executeDrawOpcode(unsigned char) ( this=0x86e0500, i=22 '\026') at engines/gob/inter_v2.cpp:657 #15 0x082dfa13 in Gob::Inter_v1::o1_drawOperations(char&, short&, short&) ( this=0x86e0500, cmdCount=@0xbfffe405, counter=@0xbfffe402, retFlag=@0xbfffe406) at engines/gob/inter_v1.cpp:973 #16 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0500, i=1 '\001', j=14 '\016', cmdCount=@0xbfffe405, counter=@0xbfffe402, retFlag=@0xbfffe406) at engines/gob/inter_v2.cpp:673 #17 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:173 #18 0x08336bbc in Gob::Inter::callSub(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:198 #19 0x082e35a0 in Gob::Inter_v1::o1_callSub(char&, short&, short&) ( this=0x86e0500, cmdCount=@0xbfffe4c5, counter=@0xbfffe4c2, retFlag=@0xbfffe4c6) at engines/gob/inter_v1.cpp:1844 #20 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0500, i=0 '\0', j=0 '\0', cmdCount=@0xbfffe4c5, counter=@0xbfffe4c2, retFlag=@0xbfffe4c6) at engines/gob/inter_v2.cpp:673 #21 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0500, retFlag=0) at engines/gob/inter.cpp:173 #22 0x0831d0d5 in Gob::Game::collSub(short) (this=0x86784d8, offset=7269) at engines/gob/game.cpp:767 #23 0x0832b22f in Gob::Game_v2::collisionsBlock() (this=0x86784d8) at engines/gob/game_v2.cpp:1040 #24 0x08336bf9 in Gob::Inter::callSub(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:200 #25 0x082e35a0 in Gob::Inter_v1::o1_callSub(char&, short&, short&) ( this=0x86e0500, cmdCount=@0xbfffe915, counter=@0xbfffe912, retFlag=@0xbfffe916) at engines/gob/inter_v1.cpp:1844 #26 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0500, i=0 '\0', j=1 '\001', cmdCount=@0xbfffe915, counter=@0xbfffe912, retFlag=@0xbfffe916) at engines/gob/inter_v2.cpp:673 #27 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0500, retFlag=1) at engines/gob/inter.cpp:173 #28 0x082e2101 in Gob::Inter_v1::o1_repeatUntil(char&, short&, short&) ( this=0x86e0500, cmdCount=@0xbfffe9a5, counter=@0xbfffe9a2, retFlag=@0xbfffe9a6) at engines/gob/inter_v1.cpp:1557 #29 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0500, i=0 '\0', j=6 '\006', cmdCount=@0xbfffe9a5, counter=@0xbfffe9a2, retFlag=@0xbfffe9a6) at engines/gob/inter_v2.cpp:673 #30 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:173 #31 0x08336bbc in Gob::Inter::callSub(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:198 #32 0x083274d6 in Gob::Game_v2::playTot(short) (this=0x86784d8, skipPlay=-1) at engines/gob/game_v2.cpp:215 #33 0x0831c217 in Gob::Game::totSub(signed char, char*) (this=0x86784d8, flags=2 '\002', newTotFile=0xbfffeae0 "GOB01") at engines/gob/game.cpp:548 #34 0x082eef10 in Gob::Inter_v2::o2_totSub() (this=0x86e0500) at engines/gob/inter_v2.cpp:2352 #35 0x082e77f7 in Gob::Inter_v2::executeDrawOpcode(unsigned char) ( this=0x86e0500, i=64 '@') at engines/gob/inter_v2.cpp:657 #36 0x082dfa13 in Gob::Inter_v1::o1_drawOperations(char&, short&, short&) ( this=0x86e0500, cmdCount=@0xbfffebb5, counter=@0xbfffebb2, retFlag=@0xbfffebb6) at engines/gob/inter_v1.cpp:973 #37 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0500, i=1 '\001', j=14 '\016', cmdCount=@0xbfffebb5, counter=@0xbfffebb2, retFlag=@0xbfffebb6) at engines/gob/inter_v2.cpp:673 #38 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0500, retFlag=1) at engines/gob/inter.cpp:173 #39 0x082e2101 in Gob::Inter_v1::o1_repeatUntil(char&, short&, short&) ( this=0x86e0500, cmdCount=@0xbfffec45, counter=@0xbfffec42, retFlag=@0xbfffec46) at engines/gob/inter_v1.cpp:1557 #40 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0500, i=0 '\0', j=6 '\006', cmdCount=@0xbfffec45, counter=@0xbfffec42, retFlag=@0xbfffec46) at engines/gob/inter_v2.cpp:673 #41 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:173 #42 0x08336bbc in Gob::Inter::callSub(short) (this=0x86e0500, retFlag=2) at engines/gob/inter.cpp:198 #43 0x083274d6 in Gob::Game_v2::playTot(short) (this=0x86784d8, skipPlay=0) at engines/gob/game_v2.cpp:215 #44 0x0831be8e in Gob::Game::start() (this=0x86784d8) at engines/gob/game.cpp:495 #45 0x082dd994 in Gob::Init::initGame(char*) (this=0x8678ae8, totName=0x0) at engines/gob/init.cpp:205 #46 0x082d5b23 in Gob::GobEngine::go() (this=0x863af58) at engines/gob/gob.cpp:130 #47 0x080530be in runGame (plugin=0x865b5a0, system=@0x860df70, edebuglevels=@0xbffff550) at base/main.cpp:200 #48 0x0805376b in scummvm_main (argc=1, argv=0xbffff614) at base/main.cpp:298 #49 0x080509ee in main (argc=1, argv=0xbffff614) at backends/platform/sdl/sdl.cpp:115 #50 0x402fb082 in __libc_start_main () from /lib/i686/libc.so.6
The "tread" command doesn't do what's intended, too:
(gdb) thread 1 Thread ID 1 not known.
I hope this helps.
comment:13 by , 18 years ago
Ah, right. There is an undocumented (i.e. intended for devs) command line option --disable-sdl-parachute
comment:14 by , 18 years ago
Ah, that helps. ^__^;
(gdb) thread 1 [Switching to thread 1 (process 21967)]#0 0x4030c479 in sigsuspend () from /lib/i686/libc.so.6 #0 0x4030c479 in sigsuspend () from /lib/i686/libc.so.6 #1 0x401e7e58 in pthread_create () from /lib/i686/libpthread.so.0 #2 0x401e9de8 in sem_unlink () from /lib/i686/libpthread.so.0 #3 0x401e6d06 in pthread_mutex_lock () from /lib/i686/libpthread.so.0 #4 0x401ba9d8 in SDL_mutexP () from /usr/lib/libSDL-1.2.so.0 #5 0x08051c63 in OSystem_SDL::lockMutex(Common::OpaqueMutex*) ( this=0x860df70, mutex=0x8682c60) at backends/platform/sdl/sdl.cpp:402 #6 0x0845fcc6 in Common::StackLock::lock() (this=0xbfffe0e0) at common/mutex.cpp:67 #7 0x0845fc4e in StackLock (this=0xbfffe0e0, mutex=@0x8682bfc, mutexName=0x0) at common/mutex.cpp:56 #8 0x08444c4f in Audio::Mixer::isSoundHandleActive(Audio::SoundHandle) ( this=0x8682bf8, handle={_val = 82}) at sound/mixer.cpp:381 #9 0x0830c66c in Gob::Snd::playSample(Gob::Snd::SoundDesc*, short, short, short) (this=0x86a5bf8, sndDesc=0x865aea0, repCount=1, frequency=7800, fadeLength=0) at engines/gob/sound.cpp:243 #10 0x082fe914 in Gob::Mult_v2::playSound(Gob::Snd::SoundDesc*, short, short, short) (this=0x8677a58, soundDesc=0x865aea0, repCount=1, freq=7800, fadeLength=0) at engines/gob/mult_v2.cpp:1296 #11 0x082fcdfe in Gob::Mult_v2::doSoundAnim(char, short) (this=0x8677a58, stop=0 '\0', frame=325) at engines/gob/mult_v2.cpp:858 #12 0x082fd29c in Gob::Mult_v2::sub_62DD(short) (this=0x8677a58, index=1) at engines/gob/mult_v2.cpp:959 #13 0x082fd481 in Gob::Mult_v2::sub_6A35() (this=0x8677a58) at engines/gob/mult_v2.cpp:991 #14 0x082fd501 in Gob::Mult_v2::animate() (this=0x8677a58) at engines/gob/mult_v2.cpp:1018 #15 0x082e2cf0 in Gob::Inter_v1::o1_animate() (this=0x86e0858) at engines/gob/inter_v1.cpp:1716 #16 0x082e77f7 in Gob::Inter_v2::executeDrawOpcode(unsigned char) ( this=0x86e0858, i=22 '\026') at engines/gob/inter_v2.cpp:657 #17 0x082dfa13 in Gob::Inter_v1::o1_drawOperations(char&, short&, short&) ( this=0x86e0858, cmdCount=@0xbfffe3d5, counter=@0xbfffe3d2, retFlag=@0xbfffe3d6) at engines/gob/inter_v1.cpp:973 #18 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0858, i=1 '\001', j=14 '\016', cmdCount=@0xbfffe3d5, counter=@0xbfffe3d2, retFlag=@0xbfffe3d6) at engines/gob/inter_v2.cpp:673 #19 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:173 #20 0x08336bbc in Gob::Inter::callSub(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:198 #21 0x082e35a0 in Gob::Inter_v1::o1_callSub(char&, short&, short&) ( this=0x86e0858, cmdCount=@0xbfffe495, counter=@0xbfffe492, retFlag=@0xbfffe496) at engines/gob/inter_v1.cpp:1844 #22 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0858, i=0 '\0', j=0 '\0', cmdCount=@0xbfffe495, counter=@0xbfffe492, retFlag=@0xbfffe496) at engines/gob/inter_v2.cpp:673 #23 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0858, retFlag=0) at engines/gob/inter.cpp:173 #24 0x0831d0d5 in Gob::Game::collSub(short) (this=0x8678538, offset=7269) at engines/gob/game.cpp:767 #25 0x0832b22f in Gob::Game_v2::collisionsBlock() (this=0x8678538) at engines/gob/game_v2.cpp:1040 #26 0x08336bf9 in Gob::Inter::callSub(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:200 #27 0x082e35a0 in Gob::Inter_v1::o1_callSub(char&, short&, short&) ( this=0x86e0858, cmdCount=@0xbfffe8e5, counter=@0xbfffe8e2, retFlag=@0xbfffe8e6) at engines/gob/inter_v1.cpp:1844 #28 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0858, i=0 '\0', j=1 '\001', cmdCount=@0xbfffe8e5, counter=@0xbfffe8e2, retFlag=@0xbfffe8e6) at engines/gob/inter_v2.cpp:673 #29 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0858, retFlag=1) at engines/gob/inter.cpp:173 #30 0x082e2101 in Gob::Inter_v1::o1_repeatUntil(char&, short&, short&) ( this=0x86e0858, cmdCount=@0xbfffe975, counter=@0xbfffe972, retFlag=@0xbfffe976) at engines/gob/inter_v1.cpp:1557 #31 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0858, i=0 '\0', j=6 '\006', cmdCount=@0xbfffe975, counter=@0xbfffe972, retFlag=@0xbfffe976) at engines/gob/inter_v2.cpp:673 #32 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:173 #33 0x08336bbc in Gob::Inter::callSub(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:198 #34 0x083274d6 in Gob::Game_v2::playTot(short) (this=0x8678538, skipPlay=-1) at engines/gob/game_v2.cpp:215 #35 0x0831c217 in Gob::Game::totSub(signed char, char*) (this=0x8678538, flags=2 '\002', newTotFile=0xbfffeab0 "GOB01") at engines/gob/game.cpp:548 #36 0x082eef10 in Gob::Inter_v2::o2_totSub() (this=0x86e0858) at engines/gob/inter_v2.cpp:2352 #37 0x082e77f7 in Gob::Inter_v2::executeDrawOpcode(unsigned char) ( this=0x86e0858, i=64 '@') at engines/gob/inter_v2.cpp:657 #38 0x082dfa13 in Gob::Inter_v1::o1_drawOperations(char&, short&, short&) ( this=0x86e0858, cmdCount=@0xbfffeb85, counter=@0xbfffeb82, retFlag=@0xbfffeb86) at engines/gob/inter_v1.cpp:973 #39 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0858, i=1 '\001', j=14 '\016', cmdCount=@0xbfffeb85, counter=@0xbfffeb82, retFlag=@0xbfffeb86) at engines/gob/inter_v2.cpp:673 #40 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0858, retFlag=1) at engines/gob/inter.cpp:173 #41 0x082e2101 in Gob::Inter_v1::o1_repeatUntil(char&, short&, short&) ( this=0x86e0858, cmdCount=@0xbfffec15, counter=@0xbfffec12, retFlag=@0xbfffec16) at engines/gob/inter_v1.cpp:1557 #42 0x082e794d in Gob::Inter_v2::executeFuncOpcode(unsigned char, unsigned char, char&, short&, short&) (this=0x86e0858, i=0 '\0', j=6 '\006', cmdCount=@0xbfffec15, counter=@0xbfffec12, retFlag=@0xbfffec16) at engines/gob/inter_v2.cpp:673 #43 0x08336aaf in Gob::Inter::funcBlock(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:173 #44 0x08336bbc in Gob::Inter::callSub(short) (this=0x86e0858, retFlag=2) at engines/gob/inter.cpp:198 #45 0x083274d6 in Gob::Game_v2::playTot(short) (this=0x8678538, skipPlay=0) at engines/gob/game_v2.cpp:215 #46 0x0831be8e in Gob::Game::start() (this=0x8678538) at engines/gob/game.cpp:495 #47 0x082dd994 in Gob::Init::initGame(char*) (this=0x8678b48, totName=0x0) at engines/gob/init.cpp:205 #48 0x082d5b23 in Gob::GobEngine::go() (this=0x8706180) at engines/gob/gob.cpp:130 #49 0x080530be in runGame (plugin=0x865b600, system=@0x860df70, edebuglevels=@0xbffff520) at base/main.cpp:200 #50 0x0805376b in scummvm_main (argc=2, argv=0xbffff5e4) at base/main.cpp:298 #51 0x080509ee in main (argc=2, argv=0xbffff5e4) at backends/platform/sdl/sdl.cpp:115 #52 0x402fb082 in __libc_start_main () from /lib/i686/libc.so.6 (gdb) thread 2 Thread ID 2 not known. (gdb) thread 3 Thread ID 3 not known. (gdb) thread 4 Thread ID 4 not known.
Is this what you need? Can I be of any more help?
comment:16 by , 18 years ago
Looks goog so far ^__^; With 25412 I couldn't get a freeze. I played a couple of screens in Gobliiins and Gobliins 2 without a problem. I'd say, this bug is fixed.
comment:17 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Hmm, did it work before? And if yes, what was the first version in which you noticed this behaviour? Also, could you run ScummVM with "-d5 --debugflags=GoblinOpcodes,DrawOpcodes,FuncOpcodes", redirect all output into a file, play until a freeze and attach the output file here?