Re: [CODE] [LONG] Stat Rolling

From: StormeRider (silk@ICI.NET)
Date: 12/24/97


At 07:10 PM 12/24/97 -0500, you wrote:
>At 03:58 PM 12/24/97 -0500, you wrote:
>>StormeRider wrote:
>>
>>> ....
>>>
>>>   case CON_QROLLSTATS:
>>> log("Entering QROLLSTATS state.\r\n");
>[snip]
>>>         SEND_TO_Q("\r\n\r\nKeep these stats? (y/N)", d);
>>>         return;    <<<<<<<<<<<<
>>>     }
>>>
>>
>>I can't be positive, but that return might be fudging things up a bit at the
>>end.
>>
>>
>Nope, because it never gets to CON_QROLLSTATS, it locks up on CON_RROLL.
>
>Changed it anyways. =)
>
>
Added a log("blah"); statement after the SEND_TO_Q(buf, d->character) and
it crashes... gdb output below.

cmoo:~/debug$ gdb bin/circle lib/core
GDB is free software and you are welcome to 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.
GDB 4.16 (i586-unknown-linux), Copyright 1996 Free Software Foundation, Inc...
Core was generated by `circle -C3 4005'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libc.so.5.4.33...done.
Reading symbols from /lib/ld-linux.so.1...done.
#0  0x804a758 in timediff (a={tv_sec = 19, tv_usec = -1073744388},
b={tv_sec = 0, tv_usec = 13962})
    at comm.c:922
922         return rslt;
(gdb) info locals
b = {tv_sec = 0, tv_usec = 18}
rslt = {tv_sec = 18, tv_usec = -986038}
(gdb) where
#0  0x804a758 in timediff (a={tv_sec = 19, tv_usec = -1073744388},
b={tv_sec = 0, tv_usec = 13962})
    at comm.c:922
#1  0x804a0c0 in game_loop (mother_desc=0) at comm.c:688
(gdb) list
917         if (a.tv_usec < b.tv_usec) {
918           rslt.tv_usec = a.tv_usec + 1000000 - b.tv_usec;
919           rslt.tv_sec--;
920         } else
921           rslt.tv_usec = a.tv_usec - b.tv_usec;
922         return rslt;
923       }
924     }
925
926     /* add 2 timevals */
(gdb)

I dont remember dicking around with the time code nor do I remember a patch
that affected it. Anyone else have this problem with Linux, or does it seem
like I have a floating memory problem? I added in a few more logs after
every line of code and for some reason it works but when I remove them it
crashes or locks. WTF is going on? If anyone needs my timer code this crash
is referring to I can post that, just didnt want to send extra lines if the
answer is already known.



StormeRider                  --- http://www.windsofstorm.net/wos/
silk@ici.net                 --- telnet://cmoo.com:4004


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



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