Re: [CODE] Oasis and structs...

From: Emil Nilimaa (kyos_overlord@hotmail.com)
Date: 09/29/99


Chris wrote:

> > >what value does d have, is it NULL?  what about the contents of ch?
>does
> > >it look ok?  what's the value of ch->desc?  What version of oasis is
> > >this?  1.5,1.6,1.7, 2.0? (I think it's stock 2.0?)  if you step the
>code
> > >does it set the value of d correcly to ch->desc a few lines back?  Your
> > >alteration of the structs should have no bearing on this problem (but
> > >circle can sometimes do odd things :)
> >--------------------------------------------------------------
  emil wrote:

> > yup oasis 2.0,
> >
> > d is null yup, and ch->desc is null..  (0x0)
> >
> > ch is (struct char_data *) 0x82e3270
> >
> > Am not that good with gdb, so no clue how to step the code.. *chuckle*
-----------------------------------------------------------------
chris wrote:

>gdb bin\circle
>
>that'll start up gdb with your circle binary (This is from the dir above
>src and lib)
>
>type
>break do_oasis
>then:
>run
>
>this'll stop the game when you enter the do_oasis cmd (any *edit cmd)
>
>for more details on it there's a quick guide about gdb on
>developer.circlemud.org:
>http://developer.circlemud.org/pub/CircleMUD/contrib/docs/GDB/debug.txt
>
>hth,
>Chris


Okay,
the mud breaked at do_oasis:

Breakpoint 1, do_oasis (ch=0x82e2e88, argument=0xbffff871 "", cmd=205
    subcmd=0) at oasis.c:74

(oasis.c:74 is first line in function)

print d gives:
$1 = (struct descriptor_data *) 0x1004

print ch->desc gives:
£2 = (struct descriptor_data *) 0x0

print ch gives:
$3 = (struct char_data *) 0x82e2e88

---------------------------------------------------------
From the core file:

Segmentation fault.

#0 do_oasis (ch=0x82e2ea8, argument=0xbffff881 "", cmd=205, subcmd=0)
   at oasis.c:148

print d gives:
$1 = (struct descriptor_data *) 0x0

print ch-desc gives:
$2 = (struct descriptor_data *) 0x0

print ch gives:
$3 = (struct char_data *) 0x82e2ea8
------------------------------------------------------------------

at oasis.c:148

  /*
   * Give descriptor an OLC structure.
   */
  if (d->olc) {               <------------ this is line 148
    mudlog("SYSERR: do_oasis: Player already had olc structure.", BRF,
LVL_IMMORT, TRUE);
    free(d->olc);
  }
  CREATE(d->olc, struct oasis_olc_data, 1);
---------------------------------------------------------------


shrug....

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


     +------------------------------------------------------------+
     | 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