08 Nov, 2008, ersin1998 wrote in the 1st comment:
Votes: 0
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
452 log_area_popularity();
454 /*
455 * That's all, folks.
456 */
457 log_string( "the game is normaly terminated." );
(gdb) print
The history is empty.
(gdb) Quit

where is the problem? i can't understand…
08 Nov, 2008, Runter wrote in the 2nd comment:
Votes: 0
The line it crashed on was


specifically the code

if (paf->type == sn)

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.