diff options
-rw-r--r-- | ChangeLog | 20 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rwxr-xr-x | runserv.sh | 11 | ||||
-rw-r--r-- | src/main.cpp | 3 |
4 files changed, 32 insertions, 9 deletions
@@ -1,8 +1,16 @@ +2005-12-29 Bjørn Lindeijer <bjorn@lindeijer.nl> + + * configure.ac: Added errors when SDL_net or libcrypto are not found. + * src/main.cpp: Reset SEGV signal handling after SDL initialisation to + allow cores to be dumped. + * runserv.sh: Added script that perpetually runs the server and + automatically saves a backtrace and restarts when it crashes. + 2005-12-29 Eugenio Favalli <elvenprogrammer@gmail.com> - * src/mapmanager.cpp, src/mapmanager.h, tmwserv.dev,: Forgot a way to - access maps. - * tmwserv.dev: Fixed merge conflict as pointed out by Bjørn. + * src/mapmanager.cpp, src/mapmanager.h, tmwserv.dev,: Forgot a way to + access maps. + * tmwserv.dev: Fixed merge conflict as pointed out by Bjørn. 2005-12-28 Bjørn Lindeijer <bjorn@lindeijer.nl> @@ -40,9 +48,9 @@ 2005-12-18 Eugenio Favalli <elvenprogrammer@gmail.com> - * src/main.cpp, src/mapreader.cpp, tmwserv.dev, - src/mapmanager.cpp, src/mapmanager.h: Added a map manager to - load/unload/reload maps. + * src/main.cpp, src/mapreader.cpp, tmwserv.dev, + src/mapmanager.cpp, src/mapmanager.h: Added a map manager to + load/unload/reload maps. 2005-12-18 Yohann Ferreira <bertram@cegetel.net> diff --git a/configure.ac b/configure.ac index 758e76ce..8fce7423 100644 --- a/configure.ac +++ b/configure.ac @@ -17,11 +17,14 @@ AC_PROG_INSTALL # Checks for libraries. -AC_CHECK_LIB([crypto], [EVP_md5]) +AC_CHECK_LIB([crypto], [EVP_md5], , +AC_MSG_ERROR([ *** Unable to find libcrypto library])) AC_CHECK_LIB([physfs], [PHYSFS_init], , AC_MSG_ERROR([ *** Unable to find PhysFS library (icculus.org/physfs/)])) +AC_CHECK_LIB([SDL_net], [SDLNet_Init], , +AC_MSG_ERROR([ *** Unable to find SDL_net library])) PKG_CHECK_MODULES(XML2, [libxml-2.0 >= 2.4]) CXXFLAGS="$CXXFLAGS $XML2_CFLAGS" @@ -33,8 +36,6 @@ AC_CHECK_LIB_TMW([SDL], [1.2.0]) CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" -AC_CHECK_LIB([SDL_net], [SDLNet_Init]) - # Checks for header files. AC_HEADER_STDC diff --git a/runserv.sh b/runserv.sh new file mode 100755 index 00000000..63ac1af2 --- /dev/null +++ b/runserv.sh @@ -0,0 +1,11 @@ +#!/bin/bash +export SDL_VIDEODRIVER=dummy +ulimit -c 100000000 +while [ true ] ; do + src/tmwserv + + for CORE in `ls core*` ; do + gdb -batch src/tmwserv $CORE > backtrace-`date +%Y%m%d-%H%M%S` + mv $CORE usedcore + done +done diff --git a/src/main.cpp b/src/main.cpp index 48191e83..4f31f0c0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,6 +22,7 @@ #include <cstdlib> #include <getopt.h> +#include <signal.h> #include <iostream> #include <physfs.h> #include <SDL.h> @@ -135,6 +136,8 @@ void initialize() exit(1); } + signal(SIGSEGV, SIG_DFL); + // set SDL to quit on exit. atexit(SDL_Quit); |