I get a non-fatal crash occurring when rebooting the mud and a fatal crash when shutting down. Here's the syslog.CRASH output.
Code:
$ doas gdb bin/circle lib/circle.core
doas (schnes@gemini.wss-ds.org) password:
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or 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.
This GDB was configured as "amd64-unknown-openbsd5.9"...
Core was generated by `circle'.
Program terminated with signal 10, Bus error.
Loaded symbols for /home/mud/clockwerx/bin/circle
Reading symbols from /usr/lib/libc.so.84.2...done.
Loaded symbols for /usr/lib/libc.so.84.2
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
#0 act (str=0x377f3f2f7c2 "$n stops following $N.", hide_invisible=1, ch=0x37a53581800,
obj=0x0, vict_obj=0x379fe0f8c00, type=3) at comm.c:2685
2685 if (!SENDOK(to) || (to == ch))
(gdb) bt
#0 act (str=0x377f3f2f7c2 "$n stops following $N.", hide_invisible=1, ch=0x37a53581800,
obj=0x0, vict_obj=0x379fe0f8c00, type=3) at comm.c:2685
#1 0x00000377f3d4c594 in stop_follower (ch=0x37a53581800) at utils.c:558
#2 0x00000377f3dca9d4 in destroy_db () at db.c:496
#3 0x00000377f3e1202d in main (argc=3, argv=0xa00f) at comm.c:363
(gdb) list
363 destroy_db();
364
365 if (!scheck) {
366 log("Clearing other memory.");
367 free_bufpool(); /* comm.c */
368 free_player_index(); /* players.c */
369 free_messages(); /* fight.c */
370 free_text_files(); /* db.c */
371 board_clear_all(); /* boards.c */
372 free(cmd_sort_info); /* act.informative.c */
(gdb) up
#1 0x00000377f3d4c594 in stop_follower (ch=0x37a53581800) at utils.c:558
558 act("$n stops following $N.", TRUE, ch, 0, ch->master, TO_NOTVICT);
(gdb) list
553 act("$n hates your guts!", FALSE, ch, 0, ch->master, TO_VICT);
554 if (affected_by_spell(ch, SPELL_CHARM))
555 affect_from_char(ch, SPELL_CHARM);
556 } else {
557 act("You stop following $N.", FALSE, ch, 0, ch->master, TO_CHAR);
558 act("$n stops following $N.", TRUE, ch, 0, ch->master, TO_NOTVICT);
559 act("$n stops following you.", TRUE, ch, 0, ch->master, TO_VICT);
560 }
561
562 if (ch->master->followers->follower == ch) { /* Head of follower-list? */
(gdb) up
#2 0x00000377f3dca9d4 in destroy_db () at db.c:496
496 stop_follower(chtmp);
(gdb) list
491 while (character_list) {
492 chtmp = character_list;
493 log("chtmp->master. %p ", chtmp->master);
494 character_list = character_list->next;
495 if (chtmp->master)
496 stop_follower(chtmp);
497 free_char(chtmp);
498 }
499
500 /* Active Objects */
(gdb) down
#1 0x00000377f3d4c594 in stop_follower (ch=0x37a53581800) at utils.c:558
558 act("$n stops following $N.", TRUE, ch, 0, ch->master, TO_NOTVICT);
(gdb) down
#0 act (str=0x377f3f2f7c2 "$n stops following $N.", hide_invisible=1, ch=0x37a53581800,
obj=0x0, vict_obj=0x379fe0f8c00, type=3) at comm.c:2685
2685 if (!SENDOK(to) || (to == ch))
(gdb) list
2680 log("SYSERR: no valid target to act()!");
2681 return NULL;
2682 }
2683
2684 for (; to; to = to->next_in_room) {
2685 if (!SENDOK(to) || (to == ch))
2686 continue;
2687 if (hide_invisible && ch && !CAN_SEE(to, ch))
2688 continue;
2689 if (type != TO_ROOM && to == vict_obj)
(gdb) print
The history is empty.
(gdb) up
#1 0x00000377f3d4c594 in stop_follower (ch=0x37a53581800) at utils.c:558
558 act("$n stops following $N.", TRUE, ch, 0, ch->master, TO_NOTVICT);
(gdb) print
The history is empty.
(gdb) up
#2 0x00000377f3dca9d4 in destroy_db () at db.c:496
496 stop_follower(chtmp);
(gdb) print
The history is empty.
(gdb) up
#3 0x00000377f3e1202d in main (argc=3, argv=0xa00f) at comm.c:363
363 destroy_db();
(gdb) print
The history is empty.
(gdb) up
Initial frame selected; you cannot go up.
(gdb)