Ported Introduction code.

From: Tony Robbins (tonyr@pacific101.com)
Date: 05/31/99


Heh, here's my problem.  I ported the introduction code for ROM by Gary
McNickle, as I've done before and it worked fine.  I'm using ASCII pfiles,
so it's not a problem allocating space (I use an int *known in
player_special_data).  Anyway, now perform_act() crashes for some strange
reason (it worked before !).    I've included a ton of GDB info because it's
so strange.  The only other thing I've changed is I added some new strings
to char_data, but they are very short, and again shouldn't affect this area.

If you have any ideas, let me know.  Also, can somebody clue me in on the
proper use of the RECREATE() macro for this?  For example, I do this:

   RECREATE(ch->player_specials->saved.known, int *,
sizeof(ch->player_specials->saved.known) + 1);
   KNOWN(ch, (sizeof(ch->player_specials->saved.known)/sizeof(int))) =
idnum;

My goal is to add another integer slot into the known array, then fill the
spot with the variable idnum.  Anyway, let me know if you can help, again,
this is very strange.

-k.

Program received signal SIGSEGV, Segmentation fault.
0x44475f in perform_act (orig=0x469135 "n has entered the game.",
    ch=0x28e8518, obj=0x0, vict_obj=0x0, to=0x28e90b0) at comm.c:2202
2202          while ((*buf = *(i++)))
(gdb) print *
A parse error in expression, near `'.
(gdb) info locals
i = 0x0
lbuf = "ops
\000\000\002\000_+i\002:(\005a\004\021\006a°+i\002¦?C\000°_i\002+@C\
000°+i\002¦?C\000_\207\216\002°_i\002_@C\000+M\216\002\210wF\000\214°i\002oo
d mo
od\000\000\000\000\000\000\000\000[ Kupop
°+i\002plrobjs/K-O/kupek.objs\000alias
\000equmace new\000\000\000\000ie\000\000\000 finely crafted newbie mace is
wait
ing for a worthy own"...
buf = 0x269d794 "ops "
(gdb) list
2197          default:
2198            log("SYSERR: Illegal $-code to act(): %c", *orig);
2199            log("SYSERR: %s", orig);
2200            break;
2201          }
2202          while ((*buf = *(i++)))
2203            buf++;
2204          orig++;
2205        } else if (!(*(buf++) = *(orig++)))
2206          break;
(gdb) bt
#0  0x44475f in perform_act (orig=0x469135 "n has entered the game.",
    ch=0x28e8518, obj=0x0, vict_obj=0x0, to=0x28e90b0) at comm.c:2202
#1  0x444cc2 in act (str=0x469134 "$n has entered the game.",
    hide_invisible=1, ch=0x28e8518, obj=0x0, vict_obj=0x0, type=1)
    at comm.c:2273
#2  0x46ae8b in nanny (d=0x28e4dc0, arg=0x269fb38 "1") at interpreter.c:1811
#3  0x4403a8 in game_loop (mother_desc=3) at comm.c:728
#4  0x43f78f in init_game (port=4000) at comm.c:356
#5  0x43f667 in main (argc=3, argv=0x26b08f8) at comm.c:320
#6  0x61004402 in _size_of_stack_reserve__ ()
#7  0x61004420 in _size_of_stack_reserve__ ()
#8  0x496616 in cygwin_crt0 (f=0x43f3ac <main>)
    at /home/noer/src/b20/comp-tools/devo/winsup/libccrt0.cc:81


     +------------------------------------------------------------+
     | 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 : 12/15/00 PST