i use anatolia codebase(rom2.4b6->anatolia) and my mud is going to crash while i'm playing. this is the gdb output:
Program received signal SIGSEGV, Segmentation fault. 0x080cef1c in is_affected (ch=0x40a06d70, sn=390) at handler.c:1474 1474 if ( paf->type == sn ) (gdb) bt #0 0x080cef1c in is_affected (ch=0x40a06d70, sn=390) at handler.c:1474 #1 0x080a38f0 in act_color (format=0x81461c0 "Kurbanı $E $p ve $P kazandırdı.", ch=0x40a02838, arg1=0x409cbf38, arg2=0x40a06d70, type=0, min_pos=5) at comm.c:4140 #2 0x080a0f05 in act (format=0x81461c0 "Kurbanı $E $p ve $P kazandırdı.", ch=0x40a02838, arg1=0x409cbf38, arg2=0x40a06d70, type=0) at comm.c:3344 #3 0x0807ec62 in do_sacrifice (ch=0x40a02838, argument=0x8169ae4 "ceset") at act_obj.c:2976 #4 0x080c3a53 in damage (ch=0x40a02838, victim=0x409cbd28, dam=35, dt=245, dam_type=2, show=1 '\001') at fight.c:1638 #5 0x080ea1c7 in spell_high_explosive (sn=245, level=15, ch=0x40a02838, vo=0x409cbd28, target=0) at magic.c:5501 #6 0x080dd410 in obj_cast_spell (sn=245, level=15, ch=0x40a02838, victim=0x409cbd28, obj=0x0) at magic.c:1018 #7 0x0807fd95 in do_zap (ch=0x40a02838, argument=0xbfffe6a2 "hiz") at act_obj.c:3352 #8 0x080d806f in interpret (ch=0x40a02838, argument=0xbfffe6a2 "hiz", is_order=0 '\0') at interp.c:720 #9 0x080d95ab in substitute_alias (d=0x409e80e0, argument=0x409e84fd "z hiz") at interp.c:1232 #10 0x0809a1c6 in game_loop_unix (control=7) at comm.c:827 #11 0x08099947 in main (argc=1, argv=0xbffffb34) at comm.c:448 (gdb) list 448 game_loop_unix( control ); 449 close (control); 450 #endif 451 452 log_area_popularity(); 453 454 /* 455 * That's all, folks. 456 */ 457 log_string( "the game is normaly terminated." ); (gdb) print The history is empty. (gdb) Quit (gdb)
which means paf, a pointer to an affect, was an invalid pointers. It may have been NULL or it may have just been freed before that pointer. Or it may have just been not correctly set.
Your backtrace yold you the stack of calls to get to that line of code.
It originated in a player zapping with a wand. It appears in the damage function the "do_sacrifice" function was called. (not sure why) And inside of that function you have it trying to print thing and in act_color it ends up calling is_affected for whatever reason and crashing it.
You might start investigating that damage function and figuring out if do_sacrifice is calling the character perhaps after it was destroyed by some damage. Although the gdb report isn't going to be a magic answer to finding the problem. It's going to take some time and effort without knowing exactly what is going on in the code.