[Circle] [Oasis] sedit problem

From: Deja Augustine (PraetorXI@aol.com)
Date: 09/20/00


First of all, I'm running a modified Oasis OLC 2.0 on a bpl17.  However, I
have done nothing to change the shop code at all.

I saw a post to the list in the archives that talked about someone using the
same OLC and patch as I having it crash at the same point (after choosing Y
to "save internally").

Up to the point where I set a break-point and stepped my way through, the
error always showed up in a backtrace as being here:

if(*tlist)
  free(*tlist);

Here's the gdb stack trace from before I walked through the code:
------------------------------
chunk_free (ar_ptr=0xe80875ff, p=0x40134d68) at malloc.c:3049
3049    malloc.c: No such file or directory.
(gdb) bt
#0  chunk_free (ar_ptr=0xe80875ff, p=0x40134d68) at malloc.c:3049
#1  0x4009ffba in __libc_free (mem=0x40134d70) at malloc.c:3023
#2  0x807376c in copy_list (tlist=0x811541c, flist=0x81153f8) at genshp.c:76
#3  0x80736e9 in copy_shop (tshop=0x8115418, fshop=0x8115568) at genshp.c:50
#4  0x8073f76 in add_shop (nshp=0x8115568) at genshp.c:397
#5  0x8089fe4 in sedit_save_internally (d=0x8112b00) at sedit.c:48
#6  0x808a9ad in sedit_parse (d=0x8112b00, arg=0xbffff818 "y") at sedit.c:374
#7  0x807dcf5 in nanny (d=0x8112b00, arg=0xbffff818 "y") at interpreter.c:1412
#8  0x8066c50 in game_loop (mother_desc=5) at comm.c:733
#9  0x8066348 in init_game (port=1337) at comm.c:369
#10 0x80662c5 in main (argc=2, argv=0xbffffba4) at comm.c:333
(gdb) frame
#0  chunk_free (ar_ptr=0xe80875ff, p=0x40134d68) at malloc.c:3049
3049    in malloc.c
(gdb) frame 2
#2  0x807376c in copy_list (tlist=0x811541c, flist=0x81153f8) at genshp.c:76
76          free(*tlist);

---------------------------------
However, this is what I got when I stepped: (You can tell from the prints I
have that that was where I thought the problem was.)
---------------------------------

Breakpoint 1, copy_list (tlist=0x8115468, flist=0x81156b0) at genshp.c:75
75        if (*tlist)
(gdb) print *tlist
$2 = (sh_int *) 0x0
(gdb) print tlist
$3 = (sh_int **) 0x8115468
(gdb) step
81        for (i = 0; flist[i] != -1; i++);
(gdb) step
82        num_items = i + 1;
(gdb) step
87        CREATE(*tlist, sh_int, num_items);
(gdb) step
__libc_calloc (n=2, elem_size=2) at malloc.c:3663
3663    malloc.c: No such file or directory.
(gdb) bt
#0  __libc_calloc (n=2, elem_size=2) at malloc.c:3663
#1  0x80737b8 in copy_list (tlist=0x8115468, flist=0x81156b0) at genshp.c:87
#2  0x80736dd in copy_shop (tshop=0x8115428, fshop=0x8115480) at genshp.c:49
#3  0x8073f76 in add_shop (nshp=0x8115480) at genshp.c:397
#4  0x8089fe4 in sedit_save_internally (d=0x8112b00) at sedit.c:48
#5  0x808a9ad in sedit_parse (d=0x8112b00, arg=0xbffff818 "y") at sedit.c:374
#6  0x807dcf5 in nanny (d=0x8112b00, arg=0xbffff818 "y") at interpreter.c:1412
#7  0x8066c50 in game_loop (mother_desc=4) at comm.c:733
#8  0x8066348 in init_game (port=1337) at comm.c:369
#9  0x80662c5 in main (argc=2, argv=0xbffffba4) at comm.c:333
(gdb) frame 1
#1  0x80737b8 in copy_list (tlist=0x8115468, flist=0x81156b0) at genshp.c:87
87        CREATE(*tlist, sh_int, num_items);
--------------------------

Anyone have any insights?

-Praetor


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



This archive was generated by hypermail 2b30 : 04/11/01 PDT