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