I have recently moved, and as yet have most of my notes still packed up. In any case, while running gdb on a core after a crash I came up with some of this. GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16 (i586-unknown-linux), Copyright 1996 Free Software Foundation, Inc... Core was generated by `bin/altered -q 4000'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libc.so.5.3.12...done. Reading symbols from /lib/ld-linux.so.1...done. #0 0x807d3ce in point_update () at limits.c:437 437 if (SECT(i->in_room) == SECT_WATER_NOSWIM && !has_boat(i)) { (gdb) bt #0 0x807d3ce in point_update () at limits.c:437 #1 0x804a5f8 in heartbeat (pulse=78750) at comm.c:846 #2 0x804a4e9 in game_loop (mother_desc=3) at comm.c:795 #3 0x8049b3e in init_game (port=4000) at comm.c:373 #4 0x8049827 in main (argc=3, argv=0xbffffe00) at comm.c:245 #5 0x804950b in ___crt_dummy__ () (gdb) list 432 433 if (GET_LEVEL(i) < LVL_IMPL) 434 check_idling(i); 435 436 if (GET_LEVEL(i) < LVL_IMMORT) 437 if (SECT(i->in_room) == SECT_WATER_NOSWIM && !has_boat(i)) { 438 act("$n thrashes about in the water straining to stay afloat.", FALSE,i, 0, 0, TO_ROOM); 439 send_to_char("You are drowning!\r\n", i); 440 damage(i, i, GET_MAX_HIT(i) / 5, TYPE_SUFFERING); /* TYPE_DROWNING ? */ 441 } (gdb) print i $1 = (struct char_data *) 0x83ed058 (gdb) print *i $2 = {pfilepos = 1074394360, nr = -2824, in_room = 16393, was_in_room = 890, was_battle = 0, player = {passwd = "Slr9fSGhRE", name = 0x83d4348 "\204&\023\bÀò\t@\020", prefix = 0x80bd72e "", short_descr = 0x0, long_descr = 0x0, description = 0x0, title = 0x81329f0 "Èò\t@Èò\t@dpupil", prompt = 0x83b9428 " ó\t@ ó\t@nt&Y: &B%o &W/ &cTank&Y: &B%t%_&r%h&Y(&R%H&Y)&whitp &c%m&Y(&C%M&Y)&wmana &g%v&Y(&G%V&Y)&wmove&Y>p", poofin = 0x0, poofout = 0x0, sex = 1 '\001', class = 3 '\003', race = 0 '\000', level = 1 '\001', hometown = 1, time = {birth = 886015432, logon = 886018742, played = 3308}, weight = 145 '\221', height = 163 '£'}, real_abils = {str = 16 '\020', str_add = 0 '\000', intel = 11 '\013', wis = 11 '\013', dex = 14 '\016', con = 12 '\f', cha = 10 '\n'}, aff_abils = {str = 16 '\020', str_add = 0 '\000', intel = 11 '\013', wis = 11 '\013', dex = 14 '\016', con = 12 '\f', cha = 10 '\n'}, points = {mana = 100, max_mana = 100, hit = 23, max_hit = 23, move = 84, max_move = 84, armor = 100, gold = 0, bank_gold = 0, exp = 1, hitroll = 0 '\000', damroll = 0 '\000'}, char_specials = {fighting = 0x0, hunting = 0x0, riding = 0x0, ridden_by = 0x0, position = 8 '\b', carry_weight = 0, carry_items = 0 '\000', timer = 49, hitgain = 0 '\000', managain = 0 '\000', saved = {alignment = 0, idnum = 287, act = 64, affected_by = 0, apply_saving_throw = {0, 0, 0, 0, 0}}}, player_specials = 0x83ed1d8, mob_specials = {last_direction = 0 '\000', attack_type = 0, default_pos = 8 '\b', memory = 0x0, damnodice = 0 '\000', damsizedice = 0 '\000', wait_state = 0, attack1 = 0, attack2 = 0, attack3 = 0}, affected = 0x0, equipment = {0x0 <repeats 26 times>}, carrying = 0x0, desc = 0x0, next_in_room = 0x0, next = 0x83f38a0, next_fighting = 0x0, followers = 0x0, master = 0x0, mpact = 0x0, mpactnum = 0} (gdb) Just a couple dumb questions, why is the name of the player in "gobble-de-gook", and as far as I know this happened after he timed out and would have been in "the void". The frustrating thing is I can not reproduce these crashes on my own machine, they only happen on the server :( Guess I could stand some basic gdb tutoring :) Thanks, RS +------------------------------------------------------------+ | 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