At 03:26 PM 4/29/98 -0400, you wrote: >Tony Robbins <tonyr@NWPACLINK.COM> writes: [ some stuff about macros i don't agree with snipped > >ObCircle: Has anyone done anything like catching SIGSEGVs, writing a >copyover file (assuring certain integrity first), and rebooting that >way? No lost connections. This is a simplified version of using >mprotect to ensure safe saves when segment violations happen, and >would be a fairly easy first-step. > hehehe, funny you should mention that. I just tested this theory, and it's one of the coolest yet (of course, the system won't crash, and you won't ever find the bugs, but hey! :-P install the copyover patch from the web site (i think it works for all systems) and modify it to where you don't need a char_data * to succeed (ie, maybe instead of "Copyover by (GET_NAME)" have "Copyover by SYSTEM") from there. and in the segfault section (i doubt Win95 has an error catcher function like Circle for UNIX has [my_signal()]) (ie, i think it only works on UNIX systems) anyway, just put this there, do_copyover(NULL, "", 0, 0); right before the exit(0); because if do_copyover was successful, you'll never get the exit(). I don't know if this'll work for all SIGSEGV's, but i did it by causing a SIGSEGV like so char *p = NULL; strcpy(p, "ABCDEFGHIJKLMONPQRSTUVWXYZ"); to test it. i doubt it will work for Divide by Zero errors, but it's worth a shot ..... lemme test that theory well, shrug. i dunno. i've tried every which way i can think of to pull a Divide by Zero error, but it won't let me do it. anyway, just do that and it'll work :-) not recommended for people who want to find out where the crashes are coming from :-) Code On Akuma the Raging Coder +----------------------------------------------------------------+ | "Yea, though I code in the Valley of the Shadow of No | | Documentation, I will fear no task: for thy C Book is with me" | | "Nothing is IMPOSSIBLE, Just IMPROBABLE" | | "Easier Said Than Done, But Better Done Than Said..." | +----------------------------------------------------------------+ +------------------------------------------------------------+ | 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