[CODE] Continuing Serious Problems, please Help

From: Mathew Earle Reuther (graymere@zipcon.net)
Date: 10/21/02


I've been continuing to struggle with my code to see if I can make any
progress at all.  I've been getting problems in diskio.c running efence
linked code under gdb.  But that makes no sense because it's identical to
the diskio.c that is on the ftp sit, etc.  I'm sure many people use that
version, and it doesn't have this effect.

Here's a couple of examples of things that have been happening:

Oct 21 06:47:14 :: Generating player index.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 28809)]
0x08099f63 in fbgetline (fbfl=0x49632fec, line=0xbffff4c0 "E") at
diskio.c:24
24        for(; *r && *r != '\n' && r <= fbfl->buf + fbfl->size; r++)
(gdb) bt
#0  0x08099f63 in fbgetline (fbfl=0x49632fec, line=0xbffff4c0 "E") at
diskio.c:24
#1  0x0807dde2 in build_player_index () at db.c:639
#2  0x0807d89f in boot_db () at db.c:456
#3  0x08074ae7 in init_game (port=7777) at comm.c:375
#4  0x08074a0a in main (argc=1, argv=0xbffff6e4) at comm.c:332
#5  0x40116336 in __libc_start_main (main=0x8074750 <main>, argc=1,
ubp_av=0xbffff6e4,
    init=0x8049548 <_init>, fini=0x80d6490 <_fini>, rtld_fini=0x4000d2fc
<_dl_fini>,
    stack_end=0xbffff6dc) at ../sysdeps/generic/libc-start.c:129
(gdb) l
19        char *r = fbfl->ptr, *w = line;
20
21        if(!fbfl || !line || !*fbfl->ptr)
22          return FALSE;
23
24        for(; *r && *r != '\n' && r <= fbfl->buf + fbfl->size; r++)
25          *(w++) = *r;
26
27        while(*r == '\r' || *r == '\n')
28          r++;
(gdb)

The above happens after creating an immortal, then logging him out and
trying to get back in (which crashes with the experience problem in the
pfile that I posted last night), and then creating a mortal, logging them
out, and logging them in, then shutting down and trying to restart the
mud.  When generating the player index it fails like above.

Or, perhaps it will decide to die at the password screen. After logging a
character back in like so, sometimes it gives this error:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 28870)]
0x080b3402 in nanny (d=0x4b414870, arg=0xbffff490 "ills1") at
interpreter.c:1750
1750          load_result = GET_BAD_PWS(d->character);
(gdb) ls
Undefined command: "ls".  Try "help".
(gdb) l
1745            }
1746            return;
1747          }
1748
1749          /* Password was correct. */
1750          load_result = GET_BAD_PWS(d->character);
1751          GET_BAD_PWS(d->character) = 0;
1752          d->bad_pws = 0;
1753
1754          if (isbanned(d->host) == BAN_SELECT &&
(gdb) bw
Undefined command: "bw".  Try "help".
(gdb) bt
#0  0x080b3402 in nanny (d=0x4b414870, arg=0xbffff490 "ills1") at
interpreter.c:1750
#1  0x080753d2 in game_loop (mother_desc=5) at comm.c:759
#2  0x08074b18 in init_game (port=7777) at comm.c:387
#3  0x08074a0a in main (argc=1, argv=0xbffff864) at comm.c:332
#4  0x40116336 in __libc_start_main (main=0x8074750 <main>, argc=1,
ubp_av=0xbffff864,
    init=0x8049548 <_init>, fini=0x80d6490 <_fini>, rtld_fini=0x4000d2fc
<_dl_fini>,
    stack_end=0xbffff85c) at ../sysdeps/generic/libc-start.c:129
(gdb)

These are NOT things I've touched.  The code pieces which are "failing"
are stock code. (for ascii pfiles, or circle depending)

These errors are vastly different than the ones I recieve on the cygwin
box here at home.  I can only assume that efence is stopping things, or
that efence or the difference in compilers is just causing failures in
different parts of the code.

Help!?  Anyone have any suggestions at all?  Please!

-Mathew

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/25/03 PDT