(gdb) run bt
Starting program: /home/nick/Desktop/q3as-sourceOLD/source/game/OBJS/Q3/qagamei386.so bt
warning: shared library handler failed to enable breakpoint
Program received signal SIGSEGV, Segmentation fault.
0x00000002 in ?? ()
I am new to this as you all are well aware. I am not sure what you mean by I need to run gdb on the engine and not the .so file. When I compile q3as all it gives me is an OBJ/Q3 folder with a bunch of object files and the .so file. What exactly is the engine that you are referring to?
/debug-linux-i386/client/cl_curl.o -c code/client/cl_curl.c
code/client/cl_curl.c:30:17: error: SDL.h: No such file or directory
code/client/cl_curl.c:31:24: error: SDL_loadso.h: No such file or directory
code/client/cl_curl.c: In function ‘GPA’:
code/client/cl_curl.c:99: warning: implicit declaration of function ‘SDL_LoadFun ction’
code/client/cl_curl.c:99: warning: assignment makes pointer from integer without a cast
code/client/cl_curl.c: In function ‘CL_cURL_Init’:
code/client/cl_curl.c:127: warning: implicit declaration of function ‘SDL_LoadOb ject’
code/client/cl_curl.c:127: warning: assignment makes pointer from integer withou t a cast
code/client/cl_curl.c:137: warning: assignment makes pointer from integer withou t a cast
code/client/cl_curl.c: In function ‘CL_cURL_Shutdown’:
code/client/cl_curl.c:192: warning: implicit declaration of function ‘SDL_Unload Object’
make[1]: *** [build/debug-linux-i386/client/cl_curl.o] Error 1
make[1]: Leaving directory `/home/nick/quake3'
make: *** [build_debug] Error 2
Ok I now have a compiled debug version of ioquake3.i386. So now I must do a gdb ioquake3.i386, type run and when it encounters an error type run bt. Correct?
Starting program: /home/nick/quake3/build/debug-linux-i386/ioquake3.i386 bt
/home/nick/quake3/build/debug-linux-i386/ioquake3.i386: error while loading shared libraries: libopenal.so.0: cannot open shared object file: No such file or directory
Program exited with code 0177.
Ok, I think I am now confused as to what I need to be debugging. Do I want to run gdb on ioq3ded.i386 or ioquake3.i386. And where does the testing of the q3as mod that I compiled come into play?
nick@nick-desktop:~/Desktop/quake3$ gdb quake3 +set fs_game=baseq3 +set sv_pure 0 +set vm_game 0 +set vm_cgame 0 +set vm_ui 0 Excess command line arguments ignored. (fs_game=baseq3 ...)
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"..."/home/nick/Desktop/quake3/quake3": not in executable format: File format not recognized
/home/nick/Desktop/quake3/+set: No such file or directory.
(gdb)
Are you sure its not q3ded so you are running it as a server? I have tried it with q3ded also and it doesn't crash, but it doesn't run as a server either. (it never loads the bots... just hangs.)
Program received signal SIGSEGV, Segmentation fault.
0x080a25ed in ?? ()
(gdb) bt
#0 0x080a25ed in ?? ()
#1 0x080b9eac in ?? ()
#2 0xbfae26ec in ?? ()
#3 0xbfae2580 in ?? ()
#4 0xbfae253c in ?? ()
#5 0xb318baa8 in Q_stricmp ()
from /home/nick/Desktop/quake3/baseq3/qagamei386.so
#6 0x0805daf2 in ?? ()
#7 0xbfae2700 in ?? ()
#8 0x00000002 in ?? ()
#9 0xbfae26c8 in ?? ()
#10 0x011c0fbe in ?? ()
#11 0xb31969cc in ?? ()
#12 0xb31a4e80 in memoryPool ()
from /home/nick/Desktop/quake3/baseq3/qagamei386.so
#13 0xbfae2700 in ?? ()
#14 0xbfae2678 in ?? ()
#15 0x00000000 in ?? ()
Well, you could download the vanilla 1.32 source and compile a debug build. It's a bit of a pain to do so, though: it doesn't compile cleanly on Linux IIRC.