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