Jump to content
  • 0

Help me to debug GDB output:) (server crash)


anacondaq

Question


  • Group:  Members
  • Topic Count:  42
  • Topics Per Day:  0.01
  • Content Count:  1096
  • Reputation:   344
  • Joined:  02/26/12
  • Last Seen:  

Hi, i'm using +- latest rAmod (did't apply last 2 commits only)

I need to understand, what is provoke server to crash by this core dump output, and i can't understand.

 

Here is core dump output step by step. Who understand in this code, help me please to understand where is a problem what make map-server crash.

 

step 0

#0  0x000000000042f5aa in status_get_party_id.part.38.116024 (
    bl=0x7ff49d4edb64) at status.c:6877
No locals.

Source Code from this part:

int status_get_party_id(struct block_list *bl)
{
...
...
6876		case BL_SKILL:
6877			return ((TBL_SKILL*)bl)->group->party_id;

Step 1

#1  0x0000000000450fe5 in status_get_party_id (bl=0x7ff49d4edb64)
    at status.c:6848
No locals.

Source:

6841	/**
6842	 * Gets the party ID of the given bl
6843	 * @param bl: Object whose party ID to get [PC|MOB|PET|HOM|MER|SKILL|ELEM]
6844	 * @return party ID
6845	 */
6846	int status_get_party_id(struct block_list *bl)
6847	{
6848		nullpo_ret(bl);
6849		switch (bl->type) {
6850			case BL_PC:
6851	

STEP 2

#2  0x0000000000602d6f in battle_check_target.part.25 (src=0x7ff49d4edb64,
    target=0x1114b5f0, flag=131072) at battle.c:7607
        s_party = 32756
        m = 497
        strip_enemy = 1

Source Code:

int battle_check_target( struct block_list *src, struct block_list *target,int flag)
{
..
..
7605		if( flag&BCT_PARTY || state&BCT_ENEMY )
7606		{
7607			int s_party = status_get_party_id(s_bl);
7608			if(s_party && s_party == status_get_party_id(t_bl))
7609				state |= BCT_PARTY;			
7610		}

STEP 3

#3  0x00000000005f6d96 in battle_check_target (src=0x7ff49d4edb64,
    target=0x1114b5f0, flag=131072) at battle.c:7223
No locals.

Source Code:

7215	int battle_check_target( struct block_list *src, struct block_list *target,int flag)
7216	{
7217		int16 m; //map
7218		int state = 0; //Initial state none
7219		int strip_enemy = 1; //Flag which marks whether to remove the BCT_ENEMY status if it's also friend/ally.
7220		struct block_list *s_bl = src, *t_bl = target;
7221	
7222		nullpo_ret(src);
7223		nullpo_ret(target);
7224	
7225		m = target->m;
7226		if( flag&BCT_ENEMY && (map_getcell(m,src->x,src->y,CELL_CHKBASILICA) || map_getcell(m,target->x,target->y,CELL_CHKBASILICA)) )
7227			return -1;

STEP 4

#4  0x000000000045a706 in skill_unit_onplace.part.60.110668 (
    unit=0x7ff49d4ede3c, bl=0x1114b5f0, tick=32079193) at skill.c:12829
        sg = 0x117a4008
        ss = 0x7ff493f16a24
        sc = 0x1114b960
        sce = 0x0
        type = SC_QUAGMIRE
        skill_id = 92

Source code

12825		}
12826			break;
12827
12828		case UNT_QUAGMIRE:
12829			if( !sce && battle_check_target(&sg->unit->bl,bl,sg->target_flag) > 0 )
12830				sc_start4(ss, bl,type,100,sg->skill_lv,sg->group_id,0,0,sg->limit);
12831			break;

Step 5:

#5  0x00000000004b1f10 in skill_unit_onplace.110673 (unit=0x7ff49d4ede3c,
---Type <return> to continue, or q <return> to quit---
    bl=0x1114b5f0, tick=32079193) at skill.c:12726
No locals.

Source Code:

12714	static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, unsigned int tick)
12715	{
12716		struct skill_unit_group *sg;
12717		struct block_list *ss; // Actual source that cast the skill unit
12718		struct status_change *sc;
12719		struct status_change_entry *sce;
12720		enum sc_type type;
12721		uint16 skill_id;
12722	
12723		nullpo_ret(unit);
12724		nullpo_ret(bl);
12725	
12726		if(bl->prev == NULL || !unit->alive || status_isdead(bl))
12727			return 0;
12728	
12729		nullpo_ret(sg = unit->group);
12730	

STEP 6

#6  0x0000000000491632 in skill_unit_move_sub (bl=0x7ff49d4ede3c,
    ap=0x7fff7a67dd90) at skill.c:18195
        result = 10006
        group = 0x117a4008
        target = 0x1114b5f0
        tick = 32079193
        flag = 3
        dissonance = 0 '\000'
        skill_id = 92
        i = 4

Source Code:

18193	} else {
18194		if( flag&1 ) {
18195			int result = skill_unit_onplace(unit,target,tick);
18196
18197			if( flag&2 && result ) { //Clear skill ids we have stored in onout.
18198				ARR_FIND( 0, ARRAYLENGTH(skill_unit_temp), i, skill_unit_temp[i] == result );
18199				if( i < ARRAYLENGTH(skill_unit_temp) )
18200					skill_unit_temp[i] = 0;
18201			}
18202		} else {
18203

Step 7

#7  0x0000000000577c75 in map_foreachincell (
    func=0x491258 <skill_unit_move_sub>, m=497, x=158, y=137, type=64)
    at map.c:1023
        bx = 19
        by = 17
        returnCount = 4
        bl = 0x0
        ap = {{gp_offset = 48, fp_offset = 48,
            overflow_arg_area = 0x7fff7a67dea0,
            reg_save_area = 0x7fff7a67ddd0}}

Source Code

1020	for( i = blockcount; i < bl_list_count; i++ )
1021		if( bl_list[ i ]->prev ) { //func() may delete this bl_list[] slot, checking for prev ensures it wasn't queued for deletion.
1022			va_start(ap, type);
1023			returnCount += func(bl_list[ i ], ap);
1024			va_end(ap);
1025		}
1026

Step 8

#8  0x0000000000491872 in skill_unit_move (bl=0x1114b5f0, tick=32079193,
---Type <return> to continue, or q <return> to quit---
    flag=3) at skill.c:18245
No locals.

Source Code:

18235	int skill_unit_move(struct block_list *bl, unsigned int tick, int flag)
18235	{
18235		nullpo_ret(bl);
18235	
18235		if( bl->prev == NULL )
18235			return 0;
18235	
18235		if( flag&2 && !(flag&1) ) //Onout, clear data
18235			memset(skill_unit_temp, 0, sizeof(skill_unit_temp));
18235	
18235		map_foreachincell(skill_unit_move_sub,bl->m,bl->x,bl->y,BL_SKILL,bl,tick,flag);
18235	

Step 9

#9  0x0000000000574a54 in map_moveblock (bl=0x1114b5f0, x1=158, y1=137,
    tick=32079193) at map.c:435
        x0 = 157
        y0 = 136
        sc = 0x1114b960
        moveblock = 0

Source Code:

429	#ifdef CELL_NOSTACK
430		else map_addblcell(bl);
431	#endif
432	
433		if (bl->type&BL_CHAR) {
434	
435			skill_unit_move(bl,tick,3);
436	
437			if( bl->type == BL_PC && ((TBL_PC*)bl)->shadowform_id ) {//Shadow Form Target Moving
438	

Step 10:

#10 0x0000000000418691 in unit_walktoxy_timer (tid=942, tick=32079193,
    id=2002662, data=210) at unit.c:378
        i = 224
        x = 158
        y = 137
        dx = 1
        dy = 1
        dir = 7 '\a'
        bl = 0x1114b5f0
        ud = 0x1114b610
        sd = 0x1114b5f0
        md = 0x0

Source  Code:

373		// Refresh view for all those we lose sight
374		map_foreachinmovearea(clif_outsight, bl, AREA_SIZE, dx, dy, sd?BL_ALL:BL_PC, bl);
375	
376		x += dx;
377		y += dy;
378		map_moveblock(bl, x, y, tick);
379		ud->walk_count++; // Walked cell counter, to be used for walk-triggered skills. [Skotlex]
380		status_change_end(bl, SC_ROLLINGCUTTER, INVALID_TIMER); // If you move, you lose your counters. [malufett]
381	

Help me please, understand what is wrong, what did provoke to crash a map server?

Thank you very much!

 

Technical information: rAthena with latest updates (except 3 latest), pre-re. 20100730


Full Core dump:

#0  0x000000000042f5aa in status_get_party_id.part.38.116024 (
    bl=0x7ff49d4edb64) at status.c:6877
No locals.
#1  0x0000000000450fe5 in status_get_party_id (bl=0x7ff49d4edb64)
    at status.c:6848
No locals.
#2  0x0000000000602d6f in battle_check_target.part.25 (src=0x7ff49d4edb64,
    target=0x1114b5f0, flag=131072) at battle.c:7607
        s_party = 32756
        m = 497
        strip_enemy = 1
#3  0x00000000005f6d96 in battle_check_target (src=0x7ff49d4edb64,
    target=0x1114b5f0, flag=131072) at battle.c:7223
No locals.
#4  0x000000000045a706 in skill_unit_onplace.part.60.110668 (
    unit=0x7ff49d4ede3c, bl=0x1114b5f0, tick=32079193) at skill.c:12829
        sg = 0x117a4008
        ss = 0x7ff493f16a24
        sc = 0x1114b960
        sce = 0x0
        type = SC_QUAGMIRE
        skill_id = 92
#5  0x00000000004b1f10 in skill_unit_onplace.110673 (unit=0x7ff49d4ede3c,
---Type <return> to continue, or q <return> to quit---
    bl=0x1114b5f0, tick=32079193) at skill.c:12726
No locals.
#6  0x0000000000491632 in skill_unit_move_sub (bl=0x7ff49d4ede3c,
    ap=0x7fff7a67dd90) at skill.c:18195
        result = 10006
        group = 0x117a4008
        target = 0x1114b5f0
        tick = 32079193
        flag = 3
        dissonance = 0 '\000'
        skill_id = 92
        i = 4
#7  0x0000000000577c75 in map_foreachincell (
    func=0x491258 <skill_unit_move_sub>, m=497, x=158, y=137, type=64)
    at map.c:1023
        bx = 19
        by = 17
        returnCount = 4
        bl = 0x0
        ap = {{gp_offset = 48, fp_offset = 48,
            overflow_arg_area = 0x7fff7a67dea0,
            reg_save_area = 0x7fff7a67ddd0}}
#8  0x0000000000491872 in skill_unit_move (bl=0x1114b5f0, tick=32079193,
---Type <return> to continue, or q <return> to quit---
    flag=3) at skill.c:18245
No locals.
#9  0x0000000000574a54 in map_moveblock (bl=0x1114b5f0, x1=158, y1=137,
    tick=32079193) at map.c:435
        x0 = 157
        y0 = 136
        sc = 0x1114b960
        moveblock = 0
#10 0x0000000000418691 in unit_walktoxy_timer (tid=942, tick=32079193,
    id=2002662, data=210) at unit.c:378
        i = 224
        x = 158
        y = 137
        dx = 1
        dy = 1
        dir = 7 '\a'
        bl = 0x1114b5f0
        ud = 0x1114b610
        sd = 0x1114b5f0
        md = 0x0
#11 0x0000000000428cd8 in do_timer (tick=32079202) at timer.c:371
        tid = 942
        diff = -9
---Type <return> to continue, or q <return> to quit---
#12 0x0000000000424575 in main (argc=1, argv=0x7fff7a67e178) at core.c:375
        next = 50

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  12
  • Reputation:   1
  • Joined:  03/04/16
  • Last Seen:  

up?

On 11/18/2019 at 7:40 AM, sader1992 said:

do you have the same problem ?

yes. I used ramod 2 and my map server crased from Wizard Katrinn. (she used QUAGMIRE and firewall)

Link to comment
Share on other sites

  • 0

  • Group:  Content Moderator
  • Topic Count:  55
  • Topics Per Day:  0.02
  • Content Count:  1676
  • Reputation:   702
  • Joined:  12/21/14
  • Last Seen:  

7 hours ago, Ultima said:

up?

why up ?

it's a problem from 2014

do you have the same problem ?

Edited by sader1992
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...