Jump to content
  • 0
komisaris

@mi commands crash map-server

Question

7 answers to this question

Recommended Posts

  • 0

Any more information??

Like which monster you doing @mi,

And gdb report would help to solve your problem.

Share this post


Link to post
Share on other sites
  • 0

Any more information??

Like which monster you doing @mi,

And gdb report would help to solve your problem.

 

ok, thanks for your reply @Dastgir.

 

i've tested on random monster id and name but all caused map-server crash and this is my GDB result on map-server crash when using "@mi poring' command.

 

 

[cbox][Thread debugging using libthread_db enabled]

Using host libthread_db library "/lib64/libthread_db.so.1".

Core was generated by `./map-server'.

Program terminated with signal 11, Segmentation fault.

#0  0x00007ff42fe66b5b in vfprintf () from /lib64/libc.so.6

Missing separate debuginfos, use: debuginfo-install glibc-2.17-55.el7_0.3.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.11.3-49.el7.x86_64 libcom_err-1.42.9-4.el7.x86_64 libgcc-4.8.2-16.2.el7_0.x86_64 libselinux-2.2.2-6.el7.x86_64 libstdc++-4.8.2-16.2.el7_0.x86_64 mariadb-libs-5.5.40-1.el7_0.x86_64 openssl-libs-1.0.1e-34.el7_0.6.x86_64 pcre-8.32-12.el7.x86_64 xz-libs-5.1.2-8alpha.el7.x86_64 zlib-1.2.7-13.el7.x86_64

(gdb) bt full

#0  0x00007ff42fe66b5b in vfprintf () from /lib64/libc.so.6

No symbol table info available.

#1  0x00007ff42fe8c9cb in vsprintf () from /lib64/libc.so.6

No symbol table info available.

#2  0x00007ff42fe6fe07 in sprintf () from /lib64/libc.so.6

No symbol table info available.

#3  0x0000000000667a5a in atcommand_mobinfo.5274 ()

No symbol table info available.

#4  0x0000000000637882 in atcommand_exec.part.70.6117 ()

No symbol table info available.

#5  0x00000000006574ba in atcommand_exec.4013 ()

No symbol table info available.

#6  0x000000000060d8e9 in clif_parse_GlobalMessage ()

No symbol table info available.

#7  0x00000000006001a8 in clif_parse ()

No symbol table info available.

#8  0x0000000000408a5d in do_sockets.3857 ()

No symbol table info available.

#9  0x0000000000405add in main ()

No symbol table info available.

[/cbox]

 

Edited by komisaris

Share this post


Link to post
Share on other sites
  • 0

can you show us what is in your atcommand.c line 5274

 

:meow:

 

here is my atcommand.c line 5274

 

 

[cbox]ACMD(displayskill) {  // <-------- Line 5274

struct status_data *st;

int64 tick;

uint16 skill_id;

uint16 skill_lv = 1;

 

if (!message || !*message || sscanf(message, "%hu %hu", &skill_id, &skill_lv) < 1) {

clif->message(fd, msg_txt(1166)); // Usage: @displayskill {}

return false;

}

st = status->get_status_data(&sd->bl);

tick = timer->gettick();

clif->skill_damage(&sd->bl,&sd->bl, tick, st->amotion, st->dmotion, 1, 1, skill_id, skill_lv, 5);

clif->skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1);

clif->skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick);

return true;

}

[/cbox]

 

Edited by komisaris

Share this post


Link to post
Share on other sites
  • 0

 

can you show us what is in your atcommand.c line 5274  :meow:

 here is my atcommand.c line 5274 

[cbox]ACMD(displayskill) {  // <-------- Line 5274

struct status_data *st;

int64 tick;

uint16 skill_id;

uint16 skill_lv = 1;

 

if (!message || !*message || sscanf(message, "%hu %hu", &skill_id, &skill_lv) < 1) {

clif->message(fd, msg_txt(1166)); // Usage: @displayskill {}

return false;

}

st = status->get_status_data(&sd->bl);

tick = timer->gettick();

clif->skill_damage(&sd->bl,&sd->bl, tick, st->amotion, st->dmotion, 1, 1, skill_id, skill_lv, 5);

clif->skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1);

clif->skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick);

return true;

}

[/cbox]

According to gdb , 5274 must be inside mobinfo command with "sprintf" function,

Maybe you updated your repo after crash??

If so, please recompile, get the gdb report, and the line menioned on gdb report.

Share this post


Link to post
Share on other sites
  • 0

 

can you show us what is in your atcommand.c line 5274

 

:meow:

 

here is my atcommand.c line 5274

 

 

[cbox]ACMD(displayskill) {  // <-------- Line 5274

struct status_data *st;

int64 tick;

uint16 skill_id;

uint16 skill_lv = 1;

 

if (!message || !*message || sscanf(message, "%hu %hu", &skill_id, &skill_lv) < 1) {

clif->message(fd, msg_txt(1166)); // Usage: @displayskill {}

return false;

}

st = status->get_status_data(&sd->bl);

tick = timer->gettick();

clif->skill_damage(&sd->bl,&sd->bl, tick, st->amotion, st->dmotion, 1, 1, skill_id, skill_lv, 5);

clif->skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1);

clif->skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick);

return true;

}

[/cbox]

 

please do what dastgir recommend and please recompile it with debug mode specify so that we can see more detailed information..

./configure --enable_debug

 

:meow:

Share this post


Link to post
Share on other sites
  • 0

i've

 

 please recompile, get the gdb report, and the line menioned on gdb report.

 

i've recompiled the server with --enable-debug=gdb , but  how to get that report you mentioned

 

like these?

 

gdb map-server core

 

[cbox]Reading symbols from /home/username/hercules/map-server...(no debugging symbols found)...done.
[New LWP 27159]
[New LWP 27166]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `./map-server'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f3628df4b5b in vfprintf () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.17-55.el7_0.3.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.11.3-49.el7.x86_64 libcom_err-1.42.9-4.el7.x86_64 libgcc-4.8.2-16.2.el7_0.x86_64 libselinux-2.2.2-6.el7.x86_64 libstdc++-4.8.2-16.2.el7_0.x86_64 mariadb-libs-5.5.40-1.el7_0.x86_64 openssl-libs-1.0.1e-34.el7_0.6.x86_64 pcre-8.32-12.el7.x86_64 xz-libs-5.1.2-8alpha.el7.x86_64 zlib-1.2.7-13.el7.x86_64
(gdb) bt full
#0 0x00007f3628df4b5b in vfprintf () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007f3628e1a9cb in vsprintf () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007f3628dfde07 in sprintf () from /lib64/libc.so.6
No symbol table info available.
#3 0x0000000000667a5a in atcommand_mobinfo.5274 ()
No symbol table info available.
#4 0x0000000000637882 in atcommand_exec.part.70.6117 ()
No symbol table info available.
#5 0x00000000006574ba in atcommand_exec.4013 ()
No symbol table info available.
#6 0x000000000060f275 in clif_parse_WisMessage ()
No symbol table info available.
#7 0x00000000006001a8 in clif_parse ()
No symbol table info available.
#8 0x0000000000408a5d in do_sockets.3857 ()
No symbol table info available.
#9 0x0000000000405add in main ()
No symbol table info available.
(gdb)
[/cbox]

 

 

atcommand.c line 5274

 

[cbox]/*==========================================
* @displayskill by [skotlex]
* Debug command to locate new skill IDs. It sends the
* three possible skill-effect packets to the area.
*------------------------------------------*/
ACMD(displayskill) {   //<--------- LINE 5274
struct status_data *st;
int64 tick;
uint16 skill_id;
uint16 skill_lv = 1;

if (!message || !*message || sscanf(message, "%hu %hu", &skill_id, &skill_lv) < 1) {
clif->message(fd, msg_txt(1166)); // Usage: @displayskill {}
return false;
}
st = status->get_status_data(&sd->bl);
tick = timer->gettick();
clif->skill_damage(&sd->bl,&sd->bl, tick, st->amotion, st->dmotion, 1, 1, skill_id, skill_lv, 5);
clif->skill_nodamage(&sd->bl, &sd->bl, skill_id, skill_lv, 1);
clif->skill_poseffect(&sd->bl, skill_id, skill_lv, sd->bl.x, sd->bl.y, tick);
return true;
}
[/cbox]

 

 

atcommand.c line 6117

 

[cbox]
if (!message || !*message || sscanf(message, "%99[^n]", mes) < 1) {
clif->message(fd, msg_txt(1224)); // Please enter a message (usage: @pettalk ).
return false;
}   //<< ----------------LINE 6117[/cbox]

 

 

atcommand.c Line 4013

 

[cbox]ACMD(partyspy) { //<----------------------LINE 4013
char party_name[NAME_LENGTH];
struct party_data *p;

memset(party_name, '0', sizeof(party_name));
memset(atcmd_output, '0', sizeof(atcmd_output));

if (!map->enable_spy)
{
clif->message(fd, msg_txt(1125)); // The mapserver has spy command support disabled.
return false;
}

if (!message || !*message || sscanf(message, "%23[^n]", party_name) < 1) {
clif->message(fd, msg_txt(1127)); // Please enter a party name/ID (usage: @partyspy ).
return false;
}

if ((p = party->searchname(party_name)) != NULL || // name first to avoid error when name begin with a number
(p = party->search(atoi(message))) != NULL) {
if (sd->partyspy == p->party.party_id) {
sd->partyspy = 0;
sprintf(atcmd_output, msg_txt(105), p->party.name); // No longer spying on the %s party.
clif->message(fd, atcmd_output);
} else {
sd->partyspy = p->party.party_id;
sprintf(atcmd_output, msg_txt(106), p->party.name); // Spying on the %s party.
clif->message(fd, atcmd_output);
}
} else {
clif->message(fd, msg_txt(96)); // Incorrect name/ID, or no one from the specified party is online.
return false;
}

return true;
}[/cbox]

 

 

and i dont know the rest of files location that addressed of that report

Edited by komisaris

Share this post


Link to post
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.   Restore formatting

  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.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.