I have recently run into a problem analyzing core dumps on Linux. When I do a backtrace the line where the mud crashed is missing. here is the output: This GDB was configured as "i586-slackware-linux"... warning: exec file is newer than core file. Core was generated by `bin/circle 4000'. Program terminated with signal 6, IOT trap/Abort. Reading symbols from /lib/libc.so.5...done. Reading symbols from /lib/ld-linux.so.1...done. #0 0x40072a89 in __kill () (gdb) where #0 0x40072a89 in __kill () #1 0x400418c9 in gsignal () #2 0x804fdc0 in nasty_signal_handler (sig=11) at comm.c:2233 #3 0xbffff848 in ?? () #4 0x811ea52 in command_interpreter (ch=0x89a3a18, argument=0xbffff964 "purge cow") at interpreter.c:1167 #5 0x804af54 in game_loop (mother_desc=3) at comm.c:752 #6 0x8049bba in init_game () at comm.c:326 #7 0x8049ac4 in main (argc=2, argv=0xbffffcf4) at comm.c:283 #8 0x80496ee in _start () (gdb) up #3 0xbffff848 in ?? () (gdb) list 2238 /* 2239 * This is an implementation of signal() using sigaction() for portability. 2240 * (sigaction() is POSIX; signal() is not.) Taken from Stevens' _Advanced 2241 * Programming in the UNIX Environment_. We are specifying that all system 2242 * calls _not_ be automatically restarted for uniformity, because BSD systems 2243 * do not restart select(), even if SA_RESTART is used. 2244 * 2245 * Note that NeXT 2.x is not POSIX and does not have sigaction; therefore, 2246 * I just define it to be the old signal. If your system doesn't have 2247 * sigaction either, you can use the same fix. (gdb) up #4 0x811ea52 in command_interpreter (ch=0x89a3a18, argument=0xbffff964 "purge cow") at interpreter.c:1167 1167 if (no_specials || !special(ch, cmd, line)) (gdb) list 1162 GET_NAME(ch), 1163 IN_ROOM(ch) ? GET_ROOM_VNUM(IN_ROOM(ch)) : 0, 1164 IN_ROOM(ch) ? world[IN_ROOM(ch)].name : "(not in a room)", 1165 cmd_info[cmd].command, line); 1166 1167 if (no_specials || !special(ch, cmd, line)) 1168 ((*cmd_info[cmd].command_pointer) (ch,line,cmd,cmd_info[cmd].subcmd)); 1169 sprintf (last_command, 1170 "(Finished) [%5ld] %s in [%5ld] %s:\n %s%s", 1171 IS_NPC(ch) ? GET_MOB_VNUM(ch) : GET_IDNUM(ch), I can tell that it crashed in a special procedure, just not which one. Here is my system info: > uname -a Linux valiant 2.0.34 #1 Thu Jun 4 18:59:35 PDT 1998 i686 unknown % gdb -version GNU gdb 4.17 % gcc --version egcs-2.90.29 980515 (egcs-1.0.3 release) Has anyone seen this behavior before? I have the coredumpsize set to unlimited and AM using the -g switch to compile. Thanx, --Angus +------------------------------------------------------------+ | 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