1

Topic: memory corruption on PowerPC Linux

I finally figured out the whole bam thing, so I successfully built teewars. However, when I fire up the client, it crashes when it attempts to load a map.  Here is the output:

[477c6c57][client]: starting...
[477c6c57][config/load]: loading /home/ndansmith/.teewars/default.cfg
libGL warning: 3D driver claims to not support visual 0x4b
[477c6c57][gfx]: depthbits = 24
[477c6c58][snd]: device #0 name='PowerMac Snapper: PowerMac Snapper (hw:0,0)'
[477c6c58][snd]: device #1 name='front'
[477c6c58][snd]: device = 0
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in '/home/ndansmith/software/teewars-0.3.2-src/src/engine/external/portaudio/pa_linux_alsa.c', line: 1114
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in '/home/ndansmith/software/teewars-0.3.2-src/src/engine/external/portaudio/pa_linux_alsa.c', line: 1668
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in '/home/ndansmith/software/teewars-0.3.2-src/src/engine/external/portaudio/pa_linux_alsa.c', line: 1789
[477c6c58][font/loading]: failed loading font fonts/tahoma6.tfnt.
[477c6c5c][game]: load skin redbopp
[477c6c5c][game]: load skin redstripe
[477c6c5c][game]: load skin twinbop
[477c6c5c][game]: load skin toptri
[477c6c5c][game]: load skin default
[477c6c5c][game]: load skin pinky
[477c6c5c][game]: load skin cammostripes
[477c6c5c][game]: load skin bluestripe
[477c6c5c][game]: load skin limekitty
[477c6c5c][game]: load skin brownbear
[477c6c5c][game]: load skin coala
[477c6c5c][game]: load skin saddo
[477c6c5c][game]: load skin twintri
[477c6c5c][game]: load skin cammo
[477c6c5c][game]: load skin bluekitty
[477c6c5c][game]: load skin ninja
[477c6c5c][game]: load skin warpaint
[477c6c5c][client]: version 0.3 e2d7973c6647a13c
[477c6c8d][dbg]: addr = 71.237.89.93:60002
[477c6ca1][dbg]: addr = 81.237.203.58:8303
[477c6ca7][dbg]: addr = 77.207.73.84:8303
[477c6caa][netclient]: disconnected. reason="(null)"
[477c6caa][net]: sendto error -1 ffffffff
[477c6caa][client]: connecting to '77.207.73.84:8303'
[477c6caa][connection]: got connect+accept, sending accept. connection online
[477c6caa][client]: connected, sending info
[477c6cab][client]: loading map, map=dm2 wanted crc=0b0bfecc
[477c6cab][datafile]: datafile loading. filename='data/maps/dm2.map'
*** glibc detected *** ./teewars_d: malloc(): memory corruption: 0x11636388 ***
======= Backtrace: =========
/lib/libc.so.6[0xf959100]
/lib/libc.so.6[0xf95ba30]
/lib/libc.so.6(__libc_malloc+0xcc)[0xf95d2d4]
/lib/libc.so.6[0xf94571c]
/lib/libc.so.6(fopen+0x28)[0xf9457e4]
./teewars_d[0x10036044]
./teewars_d[0x10028840]
./teewars_d[0x1003aea8]
./teewars_d[0x1003b508]
./teewars_d[0x1003bfa8]
./teewars_d[0x1003c680]
./teewars_d[0x1003c954]
./teewars_d[0x1003ccd4]
/lib/libc.so.6[0xf8fe000]
/lib/libc.so.6[0xf8fe234]
======= Memory map: ========
00100000-00103000 r-xp 00100000 00:00 0          [vdso]
0f3f8000-0f408000 r-xp 00000000 03:05 4390895    /lib/libresolv-2.6.1.so
0f408000-0f409000 r--p 00010000 03:05 4390895    /lib/libresolv-2.6.1.so
0f409000-0f40a000 rw-p 00011000 03:05 4390895    /lib/libresolv-2.6.1.so
0f40a000-0f40c000 rw-p 0f40a000 00:00 0 
0f41c000-0f420000 r-xp 00000000 03:05 4390974    /lib/libnss_dns-2.6.1.so
0f420000-0f42f000 ---p 00004000 03:05 4390974    /lib/libnss_dns-2.6.1.so
0f42f000-0f430000 r--p 00003000 03:05 4390974    /lib/libnss_dns-2.6.1.so
0f430000-0f431000 rw-p 00004000 03:05 4390974    /lib/libnss_dns-2.6.1.so
0f441000-0f44c000 r-xp 00000000 03:05 4390874    /lib/libnss_files-2.6.1.so
0f44c000-0f45b000 ---p 0000b000 03:05 4390874    /lib/libnss_files-2.6.1.so
0f45b000-0f45c000 r--p 0000a000 03:05 4390874    /lib/libnss_files-2.6.1.so
0f45c000-0f45d000 rw-p 0000b000 03:05 4390874    /lib/libnss_files-2.6.1.so
0f46d000-0f473000 r-xp 00000000 03:05 222082     /usr/lib/libXfixes.so.3.1.0
0f473000-0f482000 ---p 00006000 03:05 222082     /usr/lib/libXfixes.so.3.1.0
0f482000-0f483000 rw-p 00005000 03:05 222082     /usr/lib/libXfixes.so.3.1.0
0f493000-0f49e000 r-xp 00000000 03:05 2994891    /usr/lib/libXrender.so.1.3.0
0f49e000-0f4ad000 ---p 0000b000 03:05 2994891    /usr/lib/libXrender.so.1.3.0
0f4ad000-0f4ae000 r--p 0000a000 03:05 2994891    /usr/lib/libXrender.so.1.3.0
0f4ae000-0f4af000 rw-p 0000b000 03:05 2994891    /usr/lib/libXrender.so.1.3.0
0f4bf000-0f4ca000 r-xp 00000000 03:05 4417493    /usr/lib/libXcursor.so.1.0.2
0f4ca000-0f4d9000 ---p 0000b000 03:05 4417493    /usr/lib/libXcursor.so.1.0.2
0f4d9000-0f4da000 r--p 0000a000 03:05 4417493    /usr/lib/libXcursor.so.1.0.2
0f4da000-0f4db000 rw-p 0000b000 03:05 4417493    /usr/lib/libXcursor.so.1.0.2
0f4eb000-0f510000 r-xp 00000000 03:05 3883096    /usr/lib/libexpat.so.1.5.2
0f510000-0f520000 ---p 00025000 03:05 3883096    /usr/lib/libexpat.so.1.5.2
0f520000-0f522000 r--p 00025000 03:05 3883096    /usr/lib/libexpat.so.1.5.2
0f522000-0f523000 rw-p 00027000 03:05 3883096    /usr/lib/libexpat.so.1.5.2
0f533000-0f789000 r-xp 00000000 03:05 1871353    /usr/lib/dri/r200_dri.so
0f789000-0f798000 ---p 00256000 03:05 1871353    /usr/lib/dri/r200_dri.so
0f798000-0f7b5000 rw-p 00255000 03:05 1871353    /usr/lib/dri/r200_dri.so
0f7b5000-0f7da000 rw-p 0f7b5000 00:00 0 
0f7ea000-0f7f6000 r-xp 00000000 03:05 210837     /usr/lib/libdrm.so.2.3.0
0f7f6000-0f805000 ---p 0000c000 03:05 210837     /usr/lib/libdrm.so.2.3.0
0f805000-0f806000 rw-p 0000b000 03:05 210837     /usr/lib/libdrm.so.2.3.0
0f816000-0f82a000 r-xp 00000000 03:05 794972     /usr/lib/libXext.so.6.4.0
0f82a000-0f839000 ---p 00014000 03:05 794972     /usr/lib/libXext.so.6.4.0
0f839000-0f83a000 rw-p 00013000 03:05 794972     /usr/lib/libXext.so.6.4.0
0f84a000-0f850000 r-xp 00000000 03:05 843202     /usr/lib/libXdmcp.so.6.0.0
0f850000-0f85f000 ---p 00006000 03:05 843202     /usr/lib/libXdmcp.so.6.0.0
0f85f000-0f860000 rw-p 00005000 03:05 843202     /usr/lib/libXdmcp.so.6.0.0
0f870000-0f874000 r-xp 00000000 03:05 399480     /usr/lib/libXau.so.6.0.0
0f874000-0f883000 ---p 00004000 03:05 399480     /usr/lib/libXau.so.6.0.0
0f883000-0f884000 rw-p 00003000 03:05 399480     /usr/lib/libXau.so.6.0.0
0f894000-0f897000 r-xp 00000000 03:05 4391046    /lib/libdl-2.6.1.so
0f897000-0f8a6000 ---p 00003000 03:05 4391046    /lib/libdl-2.6.1.so
0f8a6000-0f8a7000 r--p 00002000 03:05 4391046    /lib/libdl-2.6.1.so
0f8a7000-0f8a8000 rw-p 00003000 03:05 4391046    /lib/libdl-2.6.1.so
0f8b8000-0f8be000 r-xp 00000000 03:05 238181     /usr/lib/libXxf86vm.so.1.0.0
0f8be000-0f8ce000 ---p 00006000 03:05 238181     /usr/lib/libXxf86vm.so.1.0.0
0f8ce000-0f8cf000 rwxp 00006000 03:05 238181     /usr/lib/libXxf86vm.so.1.0.0
0f8df000-0fa27000 r-xp 00000000 03:05 4390894    /lib/libc-2.6.1.so
0fa27000-0fa36000 ---p 00148000 03:05 4390894    /lib/libc-2.6.1.so
0fa36000-0fa3b000 r--p 00147000 03:05 4390894    /lib/libc-2.6.1.so
0fa3b000-0fa3c000 rw-p 0014c000 03:05 4390894    /lib/libc-2.6.1.so
0fa3c000-0fa3f000 rw-p 0fa3c000 00:00 0 
0fa4f000-0fa61000 r-xp 00000000 03:05 1196839    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libgcc_s.so.1
0fa61000-0fa70000 ---p 00012000 03:05 1196839    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libgcc_s.so.1
0fa70000-0fa71000 rw-p 00011000 03:05 1196839    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libgcc_s.so.1
0fa81000-0fb24000 r-xp 00000000 03:05 4391044    /lib/libm-2.6.1.so
0fb24000-0fb33000 ---p 000a3000 03:05 4391044    /lib/libm-2.6.1.so
0fb33000-0fb37000 r--p 000a2000 03:05 4391044    /lib/libm-2.6.1.so
0fb37000-0fb38000 rw-p 000a6000 03:05 4391044    /lib/libm-2.6.1.so
0fb48000-0fc3c000 r-xp 00000000 03:05 1193584    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libstdc++.so.6.0.8
0fc3c000-0fc4b000 ---p 000f4000 03:05 1193584    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libstdc++.so.6.0.8
0fc4b000-0fc4e000 r--p 000f3000 03:05 1193584    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libstdc++.so.6.0.8
0fc4e000-0fc50000 rw-p 000f6000 03:05 1193584    /usr/lib/gcc/powerpc-unknown-linux-gnu/4.1.2/libstdc++.so.6.0.8
0fc50000-0fc56000 rw-p 0fc50000 00:00 0 
0fc66000-0fcf0000 r-xp 00000000 03:05 1871355    /usr/lib/libGLU.so.1.3.060502
0fcf0000-0fcff000 ---p 0008a000 03:05 1871355    /usr/lib/libGLU.so.1.3.060502
0fcff000-0fd01000 rw-p 00089000 03:05 1871355    /usr/lib/libGLU.so.1.3.060502
0fd11000-0fd92000 r-xp 00000000 03:05 1871351    /usr/lib/opengl/xorg-x11/lib/libGL.so.1.2
0fd92000-0fda2000 ---p 00081000 03:05 1871351    /usr/lib/opengl/xorg-x11/lib/libGL.so.1.2
0fda2000-0fda9000 rw-p 00081000 03:05 1871351    /usr/lib/opengl/xorg-x11/lib/libGL.so.1.2
0fda9000-0fdaa000 rw-p 0fda9000 00:00 0 
0fdba000-0feca000 r-xp 00000000 03:05 4731677    /usr/lib/libX11.so.6.2.0
0feca000-0fecd000 r--p 00110000 03:05 4731677    /usr/lib/libX11.so.6.2.0
0fecd000-0fed0000 rw-p 00113000 03:05 4731677    /usr/lib/libX11.so.6.2.0
0fee0000-0ffb0000 r-xp 00000000 03:05 1567915    /usr/lib/libasound.so.2.0.0
0ffb0000-0ffb7000 rw-p 000d0000 03:05 1567915    /usr/lib/libasound.so.2.0.0
0ffc7000-0ffdd000 r-xp 00000000 03:05 4390903    /lib/libpthread-2.6.1.so
0ffdd000-0ffec000 ---p 00016000 03:05 4390903    /lib/libpthread-2.6.1.so
0ffec000-0ffed000 r--p 00015000 03:05 4390903    /lib/libpthread-2.6.1.so
0ffed000-0ffee000 rw-p 00016000 03:05 4390903    /lib/libpthread-2.6.1.so
0ffee000-0fff0000 rw-p 0ffee000 00:00 0 
10000000-100a5000 r-xp 00000000 03:05 5135511    /home/ndansmith/software/teewars-0.3.2-src/teewars_d
100b4000-100b5000 r--p 000a4000 03:05 5135511    /home/ndansmith/software/teewars-0.3.2-src/teewars_d
100b5000-100ba000 rw-p 000a5000 03:05 5135511    /home/ndansmith/software/teewars-0.3.2-src/teewars_d
100ba000-1172f000 rwxp 100ba000 00:00 0          [heap]
30000000-3001e000 r-xp 00000000 03:05 4391066    /lib/ld-2.6.1.so
3001e000-30024000 rw-p 3001e000 00:00 0 
30024000-30026000 rw-s f21c1000 00:0d 498        /dev/dri/card0
30026000-30027000 r--s 00101000 00:0d 498        /dev/dri/card0
30027000-30028000 rw-p 30027000 00:00 0 
3002d000-3002e000 r--p 0001d000 03:05 4391066    /lib/ld-2.6.1.so
3002e000-3002f000 rw-p 0001e000 03:05 4391066    /lib/ld-2.6.1.so
3002f000-3202f000 rw-s 98000000 00:0d 498        /dev/dri/card0
3202f000-3203f000 r--s 90000000 00:0d 498        /dev/dri/card0
3203f000-3223f000 rw-s 00102000 00:0d 498        /dev/dri/card0
3223f000-3271f000 rw-s 00302000 00:0d 498        /dev/dri/card0
3271f000-329ee000 rw-p 3271f000 00:00 0 
32aef000-32d72000 rw-p 32aef000 00:00 0 
32def000-333f1000 rw-p 32def000 00:00 0 
333f2000-335f4000 rw-p 333f2000 00:00 0 
336f4000-33976000 rw-p 336f4000 00:00 0 
33d77000-34279000 rw-p 33d77000 00:00 0 
7fcf2000-7fd35000 rw-p 7ffbd000 00:00 0          [stack]
Aborted

2

Re: memory corruption on PowerPC Linux

Kinda hard to say what it could be. But perhaps it doesn't run the nesesary swapping functions. Open src/engine/e_engine.c

Add this line to the beginning of engine_init:

    dbg_msg("engine", "running on %s-%s-%s", CONF_FAMILY_STRING, CONF_PLATFORM_STRING, CONF_ARCH_STRING);
#ifdef CONF_ARCH_ENDIAN_LITTLE
    dbg_msg("engine", "arch is little endian");
#elif defined(CONF_ARCH_ENDIAN_BIG)
    dbg_msg("engine", "arch is big endian");
#else
    dbg_msg("engine", "arch is of unknown endian");
#endif

Compile, run again and tell me the result of those lines.
For quicker response, come to #teewars-dev on quakenet.

3

Re: memory corruption on PowerPC Linux

matricks wrote:

Add this line to the beginning of engine_init:
...
Compile, run again and tell me the result of those lines.

On my system (an iBook G4) this is the debug messages produced:

[47817332][client]: starting...
[47817332][engine]: running on unix-linux-ppc
[47817332][engine]: arch is big endian
...

Still gets a memory corruption though =/