Hi there
Currently i am fixing our GameCode with valgrind, and am trying very
hard, to eliminate all possible errors. During this exercise, i found
out, that some errors do not come from my implementations, but from
SDL (or the faulty implementation on my part initializing it).
The base of my code comes from Cone3D, which can be found under:
http://cone3d.gamedev.net/cgi-bin/download.pl?file=/cone3d/ogladv/tut1/cone3d.tar.gz&blah=1
from the setup tutorial on http://cone3d.gamedev.net
i compiled it with
g++ *.cpp -lGL -lGLU sdl-config --cflags --libs
and running valgrind over it with:
valgrind ./a.out
gets the attached output.
If someone could tell me, how to initialize and delete SDL for real,
it would be greate.
thanks in advance
Benjamin
==27518== Memcheck, a memory error detector for x86-linux.
==27518== Copyright © 2002-2005, and GNU GPL’d, by Julian Seward et al.
==27518== Using valgrind-2.4.0, a program supervision framework for
x86-linux.
==27518== Copyright © 2000-2005, and GNU GPL’d, by Julian Seward et al.
==27518== For more details, rerun with: -v
==27518==
==27518== Syscall param write(buf) points to uninitialised byte(s)
==27518== at 0x1BC31448: write (in /lib/libc-2.3.5.so)
==27518== Address 0x1BEE25A6 is 14 bytes inside a block of size 16384
alloc’d
==27518== at 0x1B904D5D: calloc (in
/usr/lib/valgrind/vgpreload_memcheck.so)
==27518== by 0x1BCD7315: XOpenDisplay (in /usr/lib/libX11.so.6.2)
==27518== Warning: set address range perms: large range 134217728, a
0, v 0
==27518== Warning: set address range perms: large range 134217728, a
0, v 0
==27518==
==27518== Syscall param ioctl(generic) points to uninitialised byte(s)
==27518== at 0x1BC37204: ioctl (in /lib/libc-2.3.5.so)
==27518== by 0x1C48B2C9: s9109 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C3A4097: s11533 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C202D0C: s9848 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47A8FB: s9042 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48E520: s2820 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48DA35: s2805 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1B99FD64: CreateContext (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1B99F2F4: glXCreateContext (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1BA7DF39: X11_GL_CreateContext (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA81F0C: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA82645: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== Address 0x52BFDE04 is on thread 1’s stack
==27518==
==27518== Conditional jump or move depends on uninitialised value(s)
==27518== at 0x1C48B2CC: s9109 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C3A4097: s11533 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C202D0C: s9848 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47A8FB: s9042 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48E520: s2820 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48DA35: s2805 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1B99FD64: CreateContext (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1B99F2F4: glXCreateContext (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1BA7DF39: X11_GL_CreateContext (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA81F0C: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA82645: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA77528: SDL_SetVideoMode (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518==
==27518== Conditional jump or move depends on uninitialised value(s)
==27518== at 0x1C26D8B2: s5478 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C2708F9: s13521 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C270307: s12657 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C18F599: s62 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C18F2DE: s13737 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C271A36: s13161 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47E01A: s2750 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47E4E9: s2751 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48EE62: s2824 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1B99C80A: glXSwapBuffers (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1BA7E26F: X11_GL_SwapBuffers (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA78C64: SDL_GL_SwapBuffers (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518==
==27518== Conditional jump or move depends on uninitialised value(s)
==27518== at 0x1C26D98E: s5478 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C2708F9: s13521 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C270307: s12657 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C18F599: s62 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C18F2DE: s13737 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C271A36: s13161 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47E01A: s2750 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47E4E9: s2751 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48EE62: s2824 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1B99C80A: glXSwapBuffers (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1BA7E26F: X11_GL_SwapBuffers (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA78C64: SDL_GL_SwapBuffers (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518==
==27518== Conditional jump or move depends on uninitialised value(s)
==27518== at 0x1BA7D2A3: X11_SetKeyboardState (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA7C62C: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA7C8D1: X11_PumpEvents (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA8EE64: SDL_PumpEvents (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA8EEA7: SDL_PollEvent (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x804A1CA: main (in /home/bensch/tmp/Cone3D/a.out)
==27518==
==27518== Syscall param ioctl(generic) points to uninitialised byte(s)
==27518== at 0x1BC37204: ioctl (in /lib/libc-2.3.5.so)
==27518== by 0x1C48C604: s12231 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C2E0853: s12060 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C275269: s7033 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C204598: s347 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47A983: s7381 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48E714: s2821 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48F526: s2833 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1B9A000E: DestroyContext (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1BA7E01F: X11_GL_Shutdown (in
/usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA816B8: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== by 0x1BA83004: (within /usr/lib/libSDL-1.2.so.0.7.1)
==27518== Address 0x52BFE034 is on thread 1’s stack
==27518==
==27518== Syscall param ioctl(generic) points to uninitialised byte(s)
==27518== at 0x1BC37204: ioctl (in /lib/libc-2.3.5.so)
==27518== by 0x1C481F2D: s12207 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C4824EF: s9802 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C4946E3: s5756 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48B80D: s8887 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C20A7AA: s418 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C20A10D: s12012 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C41E90C: s7346 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C3EF5D3: s10098 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C411C9F: s11488 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C3A87AE: s7226 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C20451F: s347 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== Address 0x52BFDEE4 is on thread 1’s stack
==27518==
==27518== Syscall param ioctl(generic) points to uninitialised byte(s)
==27518== at 0x1BC37204: ioctl (in /lib/libc-2.3.5.so)
==27518== by 0x1C47A10B: s3296 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C47AA3C: s11892 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48E074: s2819 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1C48DCA5: s2804 (in /usr/lib/modules/dri/fglrx_dri.so)
==27518== by 0x1B9A1DBF: __glXFreeDisplayPrivate (in
/usr/lib/opengl/ati/lib/libGL.so.1.2)
==27518== by 0x1BCCD375: _XFreeExtData (in /usr/lib/libX11.so.6.2)
==27518== Address 0x52BFE064 is on thread 1’s stack
==27518== Warning: set address range perms: large range 134217728, a
1, v 1
==27518== Warning: set address range perms: large range 134217728, a
1, v 1
==27518==
==27518== ERROR SUMMARY: 102 errors from 9 contexts (suppressed: 69
from 1)
==27518== malloc/free: in use at exit: 2257868 bytes in 1008 blocks.
==27518== malloc/free: 4214 allocs, 3206 frees, 8309403 bytes allocated.
==27518== For counts of detected errors, rerun with: -v
==27518== searching for pointers to 1008 not-freed blocks.
==27518== checked 3381112 bytes.
==27518==
==27518== LEAK SUMMARY:
==27518== definitely lost: 34664 bytes in 31 blocks.
==27518== possibly lost: 2788 bytes in 2 blocks.
==27518== still reachable: 2220416 bytes in 975 blocks.
==27518== suppressed: 0 bytes in 0 blocks.
==27518== Use --leak-check=full to see details of leaked memory.–
visit the worlds most furious open-source 3D-action game
http://www.orxonox.net