segfault

Peter Jay Salzman p at dirac.org
Tue Aug 6 17:06:18 EDT 2002


hola,

quake2 is segfaulting on me about 3 seconds into the opening demo.  it
happens repeatedly right when the dude readies the weapon in his hand.
i have reason to believe it has to do with QMAX.

here's the backtrace:

#0  0xbffff6e4 in ?? ()
#1  0x0805b84c in CL_R_Explode_SP (origin=0xbffff870)
    at src/client/cl_tent.c:243
#2  0x0805cbe6 in CL_ParseTEnt () at src/client/cl_tent.c:1011
#3  0x0805abcd in CL_ParseServerMessage () at src/client/cl_parse.c:764
#4  0x0805816a in CL_ReadPackets () at src/client/cl_main.c:1045
#5  0x080598bf in CL_Frame (msec=28) at src/client/cl_main.c:1760
#6  0x0807802c in Qcommon_Frame (msec=28) at src/qcommon/common.c:1592
#7  0x08086002 in main (argc=1, argv=0xbffff9c4) at
    src/linux/sys_linux.c:332

note that this is with the "non-debug" version.  i'm surprised that
there's a symbol table to read.  could this be an error in the makefile?

in cl_tent.c, line 243:

   void CL_R_Explode_SP (vec3_t origin)
   {
        CL_Explosion_Particle (origin, 0, true, true);
   }

gdb sees origin as a "float *" pointing to a type vec_t.   it stores
0xbffff870 and has a value of -184.   i don't know if this is a "good
value" or not.

this wasn't particularly illuminating.  i'm guessing that the segfault
happened in whatever is represented by frame 0.  so i built and
installed the debug version of quake2.  the same segfault happened at
the same part of the demo, and here's the resulting backtrace:

#0  0x40046af4 in dlopen () from /lib/libdl.so.2
#1  0x0805f15c in CL_ParseServerMessage () at src/client/cl_parse.c:764
#2  0x0805bd15 in CL_ReadPackets () at src/client/cl_main.c:1045
#3  0x0805d926 in CL_Frame (msec=36) at src/client/cl_main.c:1760
#4  0x0807fd73 in Qcommon_Frame (msec=36) at src/qcommon/common.c:1592
#5  0x08090eb1 in main (argc=1, argv=0xbffff994) at
   src/linux/sys_linux.c:332

looking at frame 1:

763                     case svc_temp_entity:
764                             CL_ParseTEnt ();
765                             break;

well, i don't know what to say.  the debug version didn't list all the
frames.   wierd.



anyway, the segfault appears to really happen at cl_tent.c, line 243.
something happens in the call to CL_R_Explode_SP().

this binary was built with BUILD_QMAX=YES.   i also have maxpak.pak,
downloaded from icculus.org in ./baseq2.

as a last note, i tossed my quake2 disk a long, long time ago when i
decided to never use microsoft again.  however, i kept the pak files.  i
have two of them:

name      md5sum
-------   ------
pak0.pak  1ec55a724dc3109fd50dde71ab581d70
pak2.pak  c8217cc5557b672a87fc210c2347d98d

can someone check these md5sums for me?

also, is there anything i can do to help with this?  i'd really like
to play quake2 again.  love that game!  :)  and i've never played quake2
ctf.  i'm itching to try.

thanks.

pete

-- 
GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E  70A9 A3B9 1945 67EA 951D



More information about the quake2 mailing list