There is a beautiful debug library that i use all the time that is standard
on all installs (or should be). Include this header in your .c file:
#include <assert.h>
and then do a:
assert(<condition to check>);
for example:
for (tch = world[ch->in_room].people; tch; tch = next_tch)
{
next_tch = tch->next_in_room;
assert(tch != NULL);
do some crap to tch...
}
and if tch is NULL, it will throw an assertion, telling you the line number
and which file.
Its similar to printfs but is a bit more savy.
Franco Gasperino
Cutting Edge Communications
509-444-INET
http://www.cet.com/
awe@cet.com
----------
> From: Desmond Daignault <tekdd@DTOL.DATATIMES.COM>
> To: CIRCLE@post.queensu.ca
> Subject: [code] quick question.
> Date: Friday, November 07, 1997 10:51 AM
>
> I have a function that scrolls through all of the mobs/players in a room
> that keeps breaking when doing a tch->next_in_room;
>
> The core file and purify both indicate a memory segment violation. is
> there a way to detect a possible memory segment violation and prevent it?
>
> The tch pointer seems to be a valid pointer. and when i play computer
> using gdb, the world[ch->in_room].people->next_in_room->next_in_room...
> works fine all the way to the last player/mob in the room which shows
NULL
> as the next_in_room.
>
> the for statement used is:
> for(tch = world[ch->in_room].people;tch; tch = next_tch)
> and it dies doing:
> next_tch = tch->next_in_room;
>
> *shrug*
>
> --
>
> Dez.
>
> void signature () {
> printf ("Praise not the day until evening has come; a woman\n"
> "until she is burnt; a sword until it is tried; a maiden
until\n"
> "she is married; ice until it has been crossed; beer until
it\n"
> "has been drunk. -- Viking Proverb\n");
> }
>
>
> +------------------------------------------------------------+
> | Ensure that you have read the CircleMUD Mailing List FAQ: |
> | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
> +------------------------------------------------------------+
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST