Guest frostwork Posted June 16, 2006 Share Posted June 16, 2006 Hi, all! First of all thanks a lot for your great project & for supporting the ppc! After a long time I finally got gemrb (CVS-snapshot from 150606 ) working yesterday on my Pegasos2 (=G4 1Ghz powerpc machine). The long time is mostly based on the missing "EndianSwitch=1" line in the cfg, which I've found only in this forum (maybe add it in the readme would spend some trouble?) Both Intro & charakter-editor work fine (BG1), but when the game is supposed to start gemrb exits with following 3 lines in terminal: ----- .... Searching for amb_tav.wav... FOUND *** glibc detected *** corrupted double-linked list: 0x1204f2f0 *** Can't create sound reader. Aborted ----- I tried with openal 0.0.8 & both freealut 1.0.1 & freealut 1.1.0. When I remove the libACMImporter.so libs from the plugins-dir the game starts... Not sure if it is important, but I did the following to compile: - removed "-Werror" (as there are warnings...) - added several powerpc/altivec optimizations (tried the libACMImporter without those without any success): "-maltivec -mabi=altivec -mtune=powerpc -mcpu=7400 -ftree-vectorize -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ftree-loop-im -fivopts -ffast-math" What can I do to help you to fix this bug (in case you're interested of course ) ? friendly, Marcel "Frostwork" Unbehaun Link to comment
Avenger Posted June 16, 2006 Share Posted June 16, 2006 Well, congrats for you to get this far I think, the bug is most likely caused by the endian switch. I'm curious about the warnings, any of those are close to the sound player? Link to comment
Guest frostwork Posted June 16, 2006 Share Posted June 16, 2006 Hi, Avenger! Thanks for (even fast) reply >Well, congrats for you to get this far Hehe, thanks! >I think, the bug is most likely caused by the endian switch. Hhhm, but without the endianswitch gemrb hangs in a "invalid seek position" loop >I'm curious about the warnings, any of those are close to the sound player? I'm going to re-try it asap. Maybe not today as biig things are compiling now & I have to go to buy some food for the weekend Have a nice day! Marcel Link to comment
Avenger Posted June 16, 2006 Share Posted June 16, 2006 >I think, the bug is most likely caused by the endian switch. Hhhm, but without the endianswitch gemrb hangs in a "invalid seek position" loop <{POST_SNAPBACK}> That's true, but the endian switch is largely untested, because i receive little feedback from Mac/PPC users. So, your feedback is most appreciated (especially if it leads to improved code). Link to comment
Guest Guest Posted June 16, 2006 Share Posted June 16, 2006 Hi, again! (faster than expected ) I've rebuilt gemrb again & it has far few warnings than I thought: (snipped out of conext...) PluginMgr.cpp: In constructor 'PluginMgr::PluginMgr(char*)': PluginMgr.cpp:150: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object PluginMgr.cpp:151: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object PluginMgr.cpp:152: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object riffhdr.cpp:47: warning: overflow in implicit constant conversion I also upgraded my stoneold valgrind to a new valgrind-3.2.0. If it may be of some help for you I can send you the output (for some reason gemrb stops earlier when being hunt through valgrind - but hey - at least even more error-messages ) (btw, fortunately Planescape Torment is atm on a cover-cd - I bought it today... It crashes at the same point... Is there any chance to get more output from gdb, maybe by adding a secret --enable-debug to configure or similar? I'll help you wherever possible - I just only need to know how Have a nice evening (ok, at least here it's evening...)! Marcel Link to comment
Avenger Posted June 17, 2006 Share Posted June 17, 2006 That's more than i hoped for, valgrind on ppc? The default config should be gdb friendly. We have a pointer to function vs pointer to data conversion check. So i think i can fix those errors (i wonder why aren't they fixed yet). [edit] Those warnings are exactly the same we 'already fixed'. For some reason your compile time check for HAVE_FORBIDDEN_OBJECT_TO_FUNCTION_CAST didn't work. If you manage to have the abovementioned symbol defined in compile time, then those 3 warnings will go away. Link to comment
Guest Guest Posted June 17, 2006 Share Posted June 17, 2006 Hi! Yes valgrind works officially on ppc since v3... >HAVE_FORBIDDEN_OBJECT_TO_FUNCTION_CAST OK, I added it & the first 3 warnings are gone but this -------------- g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I/usr/include -DSYSCONFDIR=\"/root/GemRB/\" -DDATADIR=\"/root/GemRB/\" -DPLUGINDIR=\"/root/GemRB/plugins/\" -g -O2 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -Wall -Werror -W -Wpointer-arith -Wcast-align -ansi -pedantic -Wno-format-y2k -Wno-long-long -maltivec -mabi=altivec -mtune=powerpc -mcpu=7400 -ftree-vectorize -fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ftree-loop-im -fivopts -ffast-math -MT riffhdr.lo -MD -MP -MF .deps/riffhdr.Tpo -c riffhdr.cpp -fPIC -DPIC -o .libs/riffhdr.o cc1plus: warnings being treated as errors riffhdr.cpp:47: warning: overflow in implicit constant conversion make[4]: *** [riffhdr.lo] Error 1 make[4]: Leaving directory `/usr/src/sources/jun3/gemrb/gemrb/plugins/ACMImporter' --------------- still exists (I'm not the expert but as it is in the ACMImporter-dir, I guess this is the "main beast" ) cheers Marcel Link to comment
Avenger Posted June 17, 2006 Share Posted June 17, 2006 I've fixed it in the cvs a few hours ago, and i'm sure it doesn't have any effect on the crash. Link to comment
Guest frostwork Posted June 17, 2006 Share Posted June 17, 2006 Hi! Yes, it completely compiles till the end with -Werror on & yes, the crash is still there The error-output is the following (without any debugger & ): (snip) --------- [KEYImporter]: Searching for amb_tav.wav...[FOUND] *** glibc detected *** ./gemrb: corrupted double-linked list: 0x12024940 *** ======= Backtrace: ========= /lib/libc.so.6[0xfab58d0] /lib/libc.so.6[0xfab70d8] /lib/libc.so.6(__libc_free+0xc0)[0xfab7344] /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.1/libstdc++.so.6(_ZdlPv+0x18)[0xfd52a 8c] /root/GemRB/plugins/libgemrb_core.so.0(_ZN10DataStreamD0Ev+0x2c)[0xff844f4] /root/GemRB/plugins//libACMImporter.so(_ZN6ACMImp9LoadSoundEPKcPi+0x2c8)[0xf1b47 24] /root/GemRB/plugins//libACMImporter.so(_ZN12AmbientMgrAL13AmbientSourceC1EP7Ambi ent+0x19c)[0xf1b6374] /root/GemRB/plugins//libACMImporter.so(_ZN12AmbientMgrAL11setAmbientsERKSt6vecto rIP7AmbientSaIS2_EE+0xec)[0xf1b66c0] /root/GemRB/plugins/libgemrb_core.so.0(_ZN3Map13SetupAmbientsEv+0x74)[0xff5e138] /root/GemRB/plugins/libgemrb_core.so.0(_ZN11GameControl9ChangeMapEP5Actorb+0x124 )[0xff3d5ec] /root/GemRB/plugins/libgemrb_core.so.0(_ZN9Interface11HandleFlagsEv+0x8c)[0xff77 150] /root/GemRB/plugins/libgemrb_core.so.0(_ZN9Interface4MainEv+0x290)[0xff7baec] ./gemrb[0x10001978] /lib/libc.so.6[0xfa5e6f0] /lib/libc.so.6[0xfa5e914] ======= Memory map: ======== -------- (snip) I hope it's of some use for you! What else could I do to help? friendly, Marcel Link to comment
jcompton Posted June 17, 2006 Share Posted June 17, 2006 Sorry to shanghai the topic, but I can't PM the guest... ...you're using a Pegasos board? A modern-day Amiga user? Does this mean my overriding hobby of the 1990s could clash with my overriding hobby of the millennial decade? Aaahhh! Link to comment
Avenger Posted June 18, 2006 Share Posted June 18, 2006 Well, it could be that the problem is with OpenAL. I also wonder why your debugger doesn't make a more readable backtrace though you have -g supplied. I don't know your dev. environment so i cannot tell you how to instruct gdb or the compiler to be more friendly to each other. [edit] What you can do: 1. try to look for some other OpenAL version (higher version numbers). 2. try to make the compiler and gdb compatible with each other 3. maybe a valgrind output would be better, but it might take several rounds. Only the first valgrind error report is important, in case you get a mile of a logfile. 4. alternatively, try without sound, if it still crashes somewhere, it would either be another bug or maybe provides better clues for this bug. I won't be sad if we kill another bug by mistake... Link to comment
Guest Guest Posted June 18, 2006 Share Posted June 18, 2006 Hi! @jcompton: >...you're using a Pegasos board? A modern-day Amiga user? Yep! Both modern and old-school as I even have a mighty Amiga4000 @Avenger: OK, I'll upgrade openal! Which version do you use? A cvs snap? Latest official is the 0.0.8, which is the same i have on my sys... >gdb: Ahh, me dump forgot to upgrade gdb ( some days ago I updated my gcc to 4.1.1) >3,4: OK, will do after having given gdb & new openal a second change! >. I won't be sad if we kill another bug by mistake... Hehe let's kill them all friendly, Marcel Link to comment
Guest frostwork Posted June 18, 2006 Share Posted June 18, 2006 Hi, again! OK, I've recompiled openal-0.0.8, gdb-6.4 without success - gdb is still silent...? BTW what does "... though you have -g supplied." mean? (probably lame question...) Maybe it's interesting/important to know that the intro-sound works, when the character-setup screen shows up this output is in the terminal: --------- Playing: /mnt/media/roms/gemrb/bg1/bg-mac/music/THEME/THEMEA.acm WARNING: Unhandled Music state: 3d0f00 [Thread 814879968 (zombie) exited] ---------- Following list is the (snipped) output of "valgrind ./gemrb" (only listing things which might be helpful...) ---------------- .... [Core]: Starting Plugin Manager... [PluginMgr]: Loading Plugins... [PluginMgr]: Searching for plugins in: /root/GemRB/plugins// ==24733== Conditional jump or move depends on uninitialised value(s) ==24733== at 0x4016C2C: index (in /lib/ld-2.4.so) ==24733== by 0x4011EE4: dl_open_worker (in /lib/ld-2.4.so) ==24733== by 0x4011A28: _dl_open (in /lib/ld-2.4.so) ==24733== by 0xFE62058: (within /lib/libdl-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0xFE625EC: (within /lib/libdl-2.4.so) ==24733== by 0xFE61F90: dlopen (in /lib/libdl-2.4.so) ==24733== by 0xFF10BF8: PluginMgr::PluginMgr(char*) (PluginMgr.cpp:134) ==24733== by 0xFF30050: Interface::Init() (Interface.cpp:733) ==24733== by 0x10001964: main (GemRB.cpp:47) ==24733== ==24733== Conditional jump or move depends on uninitialised value(s) ==24733== at 0x4016C38: index (in /lib/ld-2.4.so) ==24733== by 0x4011EE4: dl_open_worker (in /lib/ld-2.4.so) ==24733== by 0x4011A28: _dl_open (in /lib/ld-2.4.so) ==24733== by 0xFE62058: (within /lib/libdl-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0xFE625EC: (within /lib/libdl-2.4.so) ==24733== by 0xFE61F90: dlopen (in /lib/libdl-2.4.so) ==24733== by 0xFF10BF8: PluginMgr::PluginMgr(char*) (PluginMgr.cpp:134) ==24733== by 0xFF30050: Interface::Init() (Interface.cpp:733) ==24733== by 0x10001964: main (GemRB.cpp:47) [PluginMgr]: Loading: /root/GemRB/plugins//libGUIScript.so...[OK] [PluginMgr]: Checking Plugin Version...[OK] ..... ------------------------- ..... [PluginMgr]: Loading Exports for Null Sound Driver...[OK] [sKIPPING] Duplicate Plug-in [PluginMgr]: Loading: /root/GemRB/plugins//libAREImporter.so...[OK] ...... -------------------------- ...... [Core]: Searching for Video Driver...[OK] ==24733== ==24733== Invalid read of size 4 ==24733== at 0x4017D1C: _wordcopy_fwd_dest_aligned (in /lib/ld-2.4.so) ==24733== by 0x4017B54: memcpy (in /lib/ld-2.4.so) ==24733== by 0x400DA98: _dl_signal_error (in /lib/ld-2.4.so) ==24733== by 0x400DC58: _dl_signal_cerror (in /lib/ld-2.4.so) ==24733== by 0x400AD08: _dl_lookup_symbol_x (in /lib/ld-2.4.so) ==24733== by 0xFB0182C: (within /lib/libc-2.4.so) ==24733== by 0xFE62294: (within /lib/libdl-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0xFE625EC: (within /lib/libdl-2.4.so) ==24733== by 0xFE62210: dlsym (in /lib/libdl-2.4.so) ==24733== by 0xF74E070: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== Address 0x407B94C is 20 bytes inside a block of size 21 alloc'd ==24733== at 0xFFBAB1C: malloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so) ==24733== by 0x40094BC: _dl_map_object (in /lib/ld-2.4.so) ==24733== by 0x400C1D0: openaux (in /lib/ld-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0x400C3C4: _dl_map_object_deps (in /lib/ld-2.4.so) ==24733== by 0x4011FD8: dl_open_worker (in /lib/ld-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0x4011A28: _dl_open (in /lib/ld-2.4.so) ==24733== by 0xFE62058: (within /lib/libdl-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0xFE625EC: (within /lib/libdl-2.4.so) ==24733== by 0xFE61F90: dlopen (in /lib/libdl-2.4.so) ==24733== ==24733== Invalid read of size 4 ==24733== at 0xFA76E3C: (within /lib/libc-2.4.so) ==24733== by 0x7EE5E004: ==24733== by 0xFA6BBB4: _IO_default_xsputn (in /lib/libc-2.4.so) ==24733== by 0xFA44090: vfprintf (in /lib/libc-2.4.so) ==24733== by 0xFA65364: vasprintf (in /lib/libc-2.4.so) ==24733== by 0xFA49FA4: asprintf (in /lib/libc-2.4.so) ==24733== by 0xFE627A0: dlerror (in /lib/libdl-2.4.so) ==24733== by 0xF74E128: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7560EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75EF14: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF742040: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== Address 0x4089648 is 56 bytes inside a block of size 59 alloc'd ==24733== at 0xFFBAB1C: malloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so) ==24733== by 0x400DA74: _dl_signal_error (in /lib/ld-2.4.so) ==24733== by 0x400DC58: _dl_signal_cerror (in /lib/ld-2.4.so) ==24733== by 0x400AD08: _dl_lookup_symbol_x (in /lib/ld-2.4.so) ==24733== by 0xFB0182C: (within /lib/libc-2.4.so) ==24733== by 0xFE62294: (within /lib/libdl-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0xFE625EC: (within /lib/libdl-2.4.so) ==24733== by 0xFE62210: dlsym (in /lib/libdl-2.4.so) ==24733== by 0xF74E110: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7560EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== ==24733== Invalid read of size 4 ==24733== at 0xFA76E3C: (within /lib/libc-2.4.so) ==24733== by 0x400A270: do_lookup_x (in /lib/ld-2.4.so) ==24733== by 0xFA6BBB4: _IO_default_xsputn (in /lib/libc-2.4.so) ==24733== by 0xFA44090: vfprintf (in /lib/libc-2.4.so) ==24733== by 0xFA65364: vasprintf (in /lib/libc-2.4.so) ==24733== by 0xFA49FA4: asprintf (in /lib/libc-2.4.so) ==24733== by 0xFE627A0: dlerror (in /lib/libdl-2.4.so) ==24733== by 0xF74E128: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75613C: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75EF14: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF742040: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== Address 0x408A680 is 56 bytes inside a block of size 59 alloc'd ==24733== at 0xFFBAB1C: malloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so) ==24733== by 0x400DA74: _dl_signal_error (in /lib/ld-2.4.so) ==24733== by 0x400DC58: _dl_signal_cerror (in /lib/ld-2.4.so) ==24733== by 0x400AD08: _dl_lookup_symbol_x (in /lib/ld-2.4.so) ==24733== by 0xFB0182C: (within /lib/libc-2.4.so) ==24733== by 0xFE62294: (within /lib/libdl-2.4.so) ==24733== by 0x400D970: _dl_catch_error (in /lib/ld-2.4.so) ==24733== by 0xFE625EC: (within /lib/libdl-2.4.so) ==24733== by 0xFE62210: dlsym (in /lib/libdl-2.4.so) ==24733== by 0xF74E110: SDL_LoadFunction (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7510EC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75613C: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== ==24733== Syscall param write(buf) points to uninitialised byte(s) ==24733== at 0xFE397EC: __write_nocancel (in /lib/libpthread-2.4.so) ==24733== by 0xF316AD4: _X11TransWrite (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF318868: (within /usr/lib/libX11.so.6.2.0) ==24733== by 0xF31AD84: _XReply (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF2EDEEC: XInternAtom (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF75273C: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7641F8: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75FC70: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7604D4: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7422CC: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF6F0EE4: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7C25F0: SDLVideoDriver::Init() (SDLVideoDriver.cpp:78) ==24733== Address 0x409592E is 14 bytes inside a block of size 16,384 alloc'd ==24733== at 0xFFB9A64: calloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so) ==24733== by 0xF2F6BAC: XOpenDisplay (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF752C6C: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75FF88: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7422CC: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF6F0EE4: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7C25F0: SDLVideoDriver::Init() (SDLVideoDriver.cpp:78) ==24733== by 0xFF304D8: Interface::Init() (Interface.cpp:762) ==24733== by 0x10001964: main (GemRB.cpp:47) [Core]: Initializing Video Plugin...[OK] .......... ----------------------- later a looong list with python-related stuff is shown... ------------------------ the end of the output: .......... [KEYImporter]: Searching for RNDMAGIC.2da...[FOUND] [KEYImporter]: Searching for RNDEQUIP.2da...[ERROR] [OK] [Core]: Initializing ability tables... [KEYImporter]: Searching for strmod.2da...[FOUND] [KEYImporter]: Searching for strmodex.2da...[FOUND] [KEYImporter]: Searching for intmod.2da...[FOUND] [KEYImporter]: Searching for dexmod.2da...[FOUND] [KEYImporter]: Searching for hpconbon.2da...[FOUND] [KEYImporter]: Searching for chrmodst.2da...[FOUND] [OK] [Core]: Initializing area aliases... [KEYImporter]: Searching for WMAPLAY.2da...[ERROR] [ERROR] [Core]: Core Initialization Complete! [sDLVideo]: Creating display ==24733== ==24733== Syscall param write(buf) points to uninitialised byte(s) ==24733== at 0xFE39828: (within /lib/libpthread-2.4.so) ==24733== by 0xF315694: (within /usr/lib/libX11.so.6.2.0) ==24733== by 0xF316AD4: _X11TransWrite (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF318868: (within /usr/lib/libX11.so.6.2.0) ==24733== by 0xF31AD84: _XReply (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF30CE44: XSync (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF7538FC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF762EC4: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7614E4: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF761D88: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7435B8: SDL_SetVideoMode (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7C2034: SDLVideoDriver::CreateDisplay(int, int, int, bool) (SDLVideoDriver.cpp:102) ==24733== Address 0x409B133 is 19 bytes inside a block of size 16,384 alloc'd ==24733== at 0xFFB9A64: calloc (in /usr/lib/valgrind/ppc32-linux/vgpreload_memcheck.so) ==24733== by 0xF2F6BAC: XOpenDisplay (in /usr/lib/libX11.so.6.2.0) ==24733== by 0xF752C6C: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF75FFCC: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7422CC: SDL_VideoInit (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF6F0EE4: SDL_InitSubSystem (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7C25F0: SDLVideoDriver::Init() (SDLVideoDriver.cpp:78) ==24733== by 0xFF304D8: Interface::Init() (Interface.cpp:762) ==24733== by 0x10001964: main (GemRB.cpp:47) [sDLVideo]: SDL_SetVideoMode...[OK] [sDLVideo]: Checking for HardWare Acceleration...[OK] [sDLVideo]: Creating Main Surface...[OK] disInstr(ppc): unhandled instruction: 0x7E2902AC primary 31(0x1F), secondary 684(0x2AC) ==24733== valgrind: Unrecognised instruction at address 0xF72A170. ==24733== Your program just tried to execute an instruction that Valgrind ==24733== did not recognise. There are two possible reasons for this. ==24733== 1. Your program has a bug and erroneously jumped to a non-code ==24733== location. If you are running Memcheck and you just saw a ==24733== warning about a bad jump, it's probably your program's fault. ==24733== 2. The instruction is legitimate but Valgrind doesn't handle it, ==24733== i.e. it's Valgrind's fault. If you think this is the case or ==24733== you are not sure, please let us know and we'll try to fix it. ==24733== Either way, Valgrind will now raise a SIGILL signal which will ==24733== probably kill your program. ==24733== ==24733== Process terminating with default action of signal 4 (SIGILL) ==24733== Illegal opcode at address 0xF72A170 ==24733== at 0xF72A170: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF70EF50: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF740418: SDL_LowerBlit (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF741B4C: SDL_ConvertSurface (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF744690: SDL_DisplayFormat (in /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF7C22C4: SDLVideoDriver::CreateDisplay(int, int, int, bool) (SDLVideoDriver.cpp:122) ==24733== by 0xFF338DC: Interface::Main() (Interface.cpp:625) ==24733== by 0x10001974: main (GemRB.cpp:53) [sDLVideo]: Creating Back Buffer...==24733== ==24733== ERROR SUMMARY: 1162 errors from 105 contexts (suppressed: 174 from 4) ==24733== malloc/free: in use at exit: 4,870,443 bytes in 5,211 blocks. ==24733== malloc/free: 18,265 allocs, 13,054 frees, 15,645,373 bytes allocated. ==24733== For counts of detected errors, rerun with: -v ==24733== searching for pointers to 5,211 not-freed blocks. ==24733== checked 22,292,716 bytes. ==24733== ==24733== LEAK SUMMARY: ==24733== definitely lost: 0 bytes in 0 blocks. ==24733== possibly lost: 1,512 bytes in 5 blocks. ==24733== still reachable: 4,868,931 bytes in 5,206 blocks. ==24733== suppressed: 0 bytes in 0 blocks. ==24733== Reachable blocks (those to which a pointer was found) are not shown. ==24733== To see them, rerun with: --show-reachable=yes Killed ------------------- Sorry for long post, but probably better too much than too less (?) Next I'll try with latest openal-svn, then without sound... cheers Marcel Link to comment
Avenger Posted June 18, 2006 Share Posted June 18, 2006 Well, either your libs (ld-2.4, sdl) are wrong, or valgrind, (or more than one of the above). None of these errors have anything to do with the previous problem, but that unrecognised opcode thing which killed the whole testing blocks any further errors. So, try to investigate this problem: disInstr(ppc): unhandled instruction: 0x7E2902AC primary 31(0x1F), secondary 684(0x2AC) ==24733== valgrind: Unrecognised instruction at address 0xF72A170. ==24733== Your program just tried to execute an instruction that Valgrind ==24733== did not recognise. There are two possible reasons for this. ==24733== 1. Your program has a bug and erroneously jumped to a non-code ==24733== location. If you are running Memcheck and you just saw a ==24733== warning about a bad jump, it's probably your program's fault. ==24733== 2. The instruction is legitimate but Valgrind doesn't handle it, ==24733== i.e. it's Valgrind's fault. If you think this is the case or ==24733== you are not sure, please let us know and we'll try to fix it. ==24733== Either way, Valgrind will now raise a SIGILL signal which will ==24733== probably kill your program. ==24733== ==24733== Process terminating with default action of signal 4 (SIGILL) ==24733== Illegal opcode at address 0xF72A170 ==24733== at 0xF72A170: (within /usr/lib/libSDL-1.2.so.0.7.3) ==24733== by 0xF70EF50: (within /usr/lib/libSDL-1.2.so.0.7.3) 1. Get the most recent valgrind and libsdl you can. 2. Report the above snippet to the valgrind developers. 3. Try to disable some of valgrind's checks (like memcheck). Link to comment
Guest frostwork Posted June 18, 2006 Share Posted June 18, 2006 Hi! I know the output doesn't have to do anything with the "main error", but I thought it may point to an other bug... (As already mentioned gemrb without valgrind runs further than with...) >1. Get the most recent valgrind and libsdl you can. >2. Report the above snippet to the valgrind developers. Both are already most resent, but valgrind on ppc is not as advanced as on x86... Just rebuilt libsdl-1.2.10 & gemrb afterwards without any changes. >3. Try to disable some of valgrind's checks (like memcheck). OK, will try! btw1 openal-cvs didn't change anything, but there are known openal-bugs f.e. described in the gentoo bugzilla... btw2 I don't think that libdl.2.4 is the problem, as I tried before with an older glibc. When adding SkipIntroVideos=1 in GemRB.cfg it segfaults. gdb-output: Loading Theme.mus Playing: /mnt/media/roms/gemrb/bg1/bg-mac/music/THEME/THEMEA.acm Music in INITIAL State. AutoStarting Program received signal SIGSEGV, Segmentation fault. [switching to Thread 814879968 (LWP 16764)] ACMImp::PlayListManager () at ACMImp.cpp:159 159 MusicReader->read_samples( ( short* ) static_memory, ACM_BUFFERSIZE >> 1 ); (gdb) where #0 ACMImp::PlayListManager () at ACMImp.cpp:159 #1 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157 #2 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157 #3 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157 #4 0x0f1b72ec in ACMImp::PlayListManager () at ACMImp.cpp:157 Previous frame inner to this frame (corrupt stack?) (gdb) cheers frostwork Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.