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