On Wed, 23 Sep 1998, John Hines wrote: > I have been having problems with my mud crashing in fights or in the > process of fights whenever more than 1 player is logged into the mud > > I have used gdb to search a core that got dumped into my lib. > the following is the result: Cheers, newbies take note :) > #0 replace_string (str=0x0, weapon_singular=0x80b11f4 "blast", > weapon_plural=0x80b11ed "blasts") at fight.c:447 Right here is your problem, str=0x0 means that you are calling it with a NULL string, the error is where you call it, meaning you'll want to search dam_messages and damage and hit for it. Perform violence is probably okay, but check the rest first, and after that check perform_violence if you can't find the error. Maybe you are freeing a string to early with free, or something like that. You are sending an empty string for the first argument to replace string, so work from there. str++) { > (gdb) backtrace Your error isn't in replace_string, you'll want to search those other functions. Of course it might be a good idea at the beginning of replace_string to add a check if (str==NULL) { // Some stuff here to log there is a problem. return; } But in conclusion your problem is before replace_string is called, probably dam message or hit. It will not be before perform violence, because if heartbeat had an error in it all fights and pretty much the entire mud would be scrwed. I therefore think you should check hit and dam messages. +------------------------------------------------------------+ | 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/15/00 PST