AutoGDB Was: [CODE] GET_LEVEL(vict) && crash

From: John Evans (evansj@HI-LINE.NET)
Date: 11/11/97

On Mon, 10 Nov 1997, Co-Sysop wrote:

> At 10:59 PM 11/8/97 -0800, you wrote:
> >On Sat, 8 Nov 1997, Co-Sysop wrote:
> >
> >->>>         else if (GET_LEVEL(vict) < LVL_IMPL)
> >->>>           act(message to player like "Don't kill imps");
> >->
> >->There were no warning while compiling.  That is why I was so puzzled.
> >
> >A warning/compiler error results in code that won't work.  A crash
> >results from code that doesn't work how you want it to (unless you
> >wanted to crash the game).
> Who would want to crash their MUD?  I sure don't (although I end up
> crashing it more often than I would like).

I have wanted to crash my MUD in the past.... I'm talking a core dumping
crash, not just shutting it down. Why? Did I lose my mind or something?

I looked at that autogdb thing that is available for download and liked
the idea, but felt that it wasn't fully done or developed. While testing
my modified script, I needed to crash the MUD with a core dump.

Here's a short bit of my autorun script to show what I did, and, no, this
is not my entire autorun script. :)

  bin/circle $FLAGS $PORT >> syslog 2>&1

  if [ -r lib/core ]; then
    gdb bin/circle lib/core < gdb.params > crash/log 2>&1
    TIMESTAMP=`date +%m.%d.%H.%M.%S`
    mkdir crash/$TIMESTAMP
    mv crash/log crash/$TIMESTAMP/log
    mv lib/core crash/$TIMESTAMP/core
    cp bin/circle crash/$TIMESTAMP/circle
    cp syslog crash/$TIMESTAMP/syslog

It runs the MUD, and if lib/core exists, then it creates a gdb log for me,
copies the normal log, core, and executable to a directory that is named
for the (approx.) time and date of the crash.

That way I can inspect the logs, core, exec., and other things in minute
detail later on to find out why things went funky on me.

Feel free to use this if you wish. Oh... Make sure and create a crash
directory or else things just won't work right, ya know?

The directory that is made to store everything in is like so:

MUD Crashes on Nov. 13th, at 10:01:15 AM. The directory made would be:

The 11 is for Nov., the 11th month of the year.
The 13 is for the day of the month.
The 10 is for the hour in 24 hour method. (This means 1 PM would be 13).
The 01 is for the minute of the hour.
The 15 is for the second of the minute.

If you have more than one crash per second, the script will run into
problems with overwriting files, but if you have more than one core dump
per second you have other things to worry about!! :)

John Evans <>

May the source be with you.

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | |

This archive was generated by hypermail 2b30 : 12/08/00 PST