Hi all,
> Which is why I speculate it's a memory overrun. C does not do runtime
> bounds checking, therefore if you write more bytes to a memory address
> than is allocated, the extra bytes will end up being written into other
> memory. This often doesn't cause a crash because the overrun ends up into
> memory that also belongs to the program (thus, no segmentation fault).
> This means that it's quite conceivable you could fudge a 'next' pointer in
> descriptor_data without directly touching it.
Well time to make my point again, dunno if the last one came through
or it was just simply ignored ;) I have had mayor memory faults in
my mud (that's C's biggest Havoc) and searched to find a way to be
able to check memory consistency. I bumped into the dmalloc library
which is available from www.letters.com. I used this sort of garbage
collector and memory reference counter. It actually has options to
fill freed memory with certain patterns so you can make out a memory
overlap has occured. I have tracked down several (stock but mostly
own) memory errors which I would normally not have found in my lifetime.
Give it a try,
Aragorn
--
---
.SIG SPACE FOR HIRE: Your sig could be here! Please contact the sender of
this email.
+------------------------------------------------------------+
| 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