Problems (again) with stop_follower

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


I've had this issue before after adding some code from the ftp site.  I
removed the addition and that solved the problem.  Lo and behold I made a
number of modifications of my own recently which caused this issue to crop
back up.  I'm exceedingly confused as to what the heck is going on to
cause this.

I'm also handicapped by the fact that the only way I know how to run gdb
is via the GUI that comes with cygwin.  I know that the information I'm
getting in that case is not equal to what I can get if I use it without
the pretty menus . . . but I don't know how to execute anything.

So, I'll explain my problem and my situation in the hopes that some of you
can help me.

1) The problem: As near as I can tell, bad pointers are being sent to
stop_follower.  It looks like the "master" pointer is hosed.  Here is the
line it dies on, and the following lines as well:

  if (ch->master->followers->follower == ch) {  /*Head of follower-list?*/
    k = ch->master->followers;
    ch->master->followers = k->next;
    free(k);
  } else {              /* locate follower who is not head of list */
    for (k = ch->master->followers; k->next->follower != ch; k = k->next);
    j = k->next;
    k->next = j->next;
    free(j);
  }

2) I don't get core files.  When my mud crashes, it crashes, period,
leaving nothing.  (Unless it leaves them in some obscure place.)  So any
gdb insructions people give me will need to take into account debugging a
process which it executes and follows through to termination.  I don't
know why this is, and I'm sorry, as I know most instructions go from the
"locate your core file and do blah" standpoint.  :(

I've got no clue why this is happening.  I know why it would be possible
now as opposed to when the mud was stock (critters now fight each other)
but I cannot imagine any piece of code that I've added managing to screw
up the relationship between masters and followers.  (Which, of course,
must mean I've got a limited imagination and poor coding ability, right?)

*sigh*

Unless I want to trash the last few days of coding (8+ hours a day) I need
help getting this fixed.  Please, if anyone has a set of instructions I
can follow with cygwin gdb to launch the code, follow it, and render
useful info, I would gladly follow through and report back with some
results so I can be taught how better to diagnose these issues on my own.

Thank you very much in advance for even the slightest thought any of you
may have.  Sometimes all it takes for me is something related, and it
triggers me to look at a piece of code I wouldn't have otherwise.  That's
why this list is such an invaluable resource!

-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