Thanks for all the helps and hints, esp. the course on gdb's bt and fr commands. I'm happy to say that I found the memory problem. I don't know if I was just unlucky or silly, but in case someone else run into the same thing later on, this is one thing to look for: In my code, I had a statement like: sprintf(buf, "This is the first statement,"); sprintf(buf, " %s <STUFF STUFF STUFF>\r\n", buf); That extra space was the culprit, and I think the reasoning goes as thus: Compiler: sets buf one character at a time, sees the space and puts it into buf, then sees the %s and puts another space in the buf or worst, a NULL... at this point, doprnt() crashes quite happily. I solved it by setting the first statement to sprintf to buf2 instead and incorporate buf2 into buf1 in the second sprintf. So far, no crashes. An interesting thing I did: When I added 2 long ints for AFFs and PREFs and MOB_flags and PLR_Flags, I had to reorganize the mob files. Then, I realized I had to modify alll the mob files. After some thinking, and because I wasn't good with sed/awk, I decided to make the db.c backwards compatible and put an extra sscanf check to switch between "old style" and "new style". I highly recommend doing this because then, you can load up someone else's area and later medit/iedit/redit things back to "new style" (I made my iedit/redit save in "new style"... no medit yet... sigh) Anyway, just thought I'd share some of my own experience hacking CIRCLE. -Billy H. Chan ~{3B:FH;~} <bhchan@csua.berkeley.edu> For more, check out http://www.csua.berkeley.edu/~bhchan NovaCmdr. 'Suicide Strom' of Clan Wolf | FiestyFly FireMoth Variant "If you're going under 100kph, you might as well stand still"
This archive was generated by hypermail 2b30 : 12/07/00 PST