(gdb) bt full
#0 0x0000555555713475 in mob_dead (md=md@entry=0x5555793e3d74, src=src@entry=0x5555793e3d74, type=<optimized out>) at mob.cpp:3011
item_tmp = {id = 0, nameid = 35077, amount = 0, equip = 0, identify = 1 '\001', refine = 0 '\000', attribute = 0 '\000', card = {0, 0, 0, 0},
option = {{id = 0, value = 0, param = 0 '\000'}, {id = 0, value = 0, param = 0 '\000'}, {id = 0, value = 0, param = 0 '\000'}, {id = 0,
value = 0, param = 0 '\000'}, {id = 0, value = 0, param = 0 '\000'}}, expire_time = 0, favorite = 0 '\000', bound = 0 '\000', unique_id = 0,
equipSwitch = 0, enchantgrade = 0 '\000'}
flag = <optimized out>
it = {first = 0, second = std::shared_ptr<s_mob_drop> (use count 1, weak count 0) = {get() = 0x55555a10e310}}
__for_range = <optimized out>
__for_begin = <optimized out>
__for_end = <optimized out>
specific = <optimized out>
ditem = <optimized out>
drop_modifier = 100
mapdrops = std::shared_ptr<s_map_drops> (use count 3, weak count 0) = {get() = 0x555559881e90}
map_drop_run = 2
on_instance = false
dlist = 0x555563c72960
drop_rate = <optimized out>
anymapdrops = <optimized out>
status = 0x5555793e41e8
sd = <optimized out>
tmpsd = {0x5555aed4f150, 0x0 <repeats 29 times>}
mvp_sd = <optimized out>
second_sd = <optimized out>
third_sd = <optimized out>
pt = {{p = 0x5555af5df394, id = 0, zeny = 0, base_exp = 0, job_exp = 0}, {p = 0x0, id = 0, zeny = 0, base_exp = 0, job_exp = 0} <repeats 29 times>}
i = <optimized out>
temp = <optimized out>
count = <optimized out>
m = 78
dmgbltypes = <optimized out>
mvp_damage = <optimized out>
tick = 66734893
rebirth = <optimized out>
homkillonly = <optimized out>
merckillonly = false
#1 0x00005555558eb57d in status_damage (src=src@entry=0x5555793e3d74, target=target@entry=0x5555793e3d74, dhp=<optimized out>, dsp=dsp@entry=0,
dap=dap@entry=0, walkdelay=walkdelay@entry=0, flag=<optimized out>, skill_id=173) at status.cpp:1577
status = 0x5555793e41e8
sc = 0x5555793e426c
hp = <optimized out>
sp = <optimized out>
ap = <optimized out>
__FUNCTION__ = "status_damage"
#2 0x0000555555892b18 in status_damage (skill_id=<optimized out>, flag=1, walkdelay=0, dsp=0, dhp=<optimized out>, target=0x5555793e3d74,
src=0x5555793e3d74) at /home/debian/rathena/src/map/status.hpp:3310
No locals.
#3 skill_castend_nodamage_id (src=0x5555793e3d74, bl=0x5555793e3d74, skill_id=<optimized out>, skill_lv=<optimized out>, tick=66734882, flag=0)
at skill.cpp:8852
sd = <optimized out>
dstsd = <optimized out>
md = <optimized out>
dstmd = 0x5555793e3d74
hd = <optimized out>
mer = 0x0
sstatus = <optimized out>
tstatus = <optimized out>
tsc = <optimized out>
tsce = <optimized out>
i = <optimized out>
type = <optimized out>
__FUNCTION__ = "skill_castend_nodamage_id"
sc = <optimized out>
#4 0x00005555558baf76 in skill_castend_id (tid=<optimized out>, tick=66734882, id=<optimized out>, data=<optimized out>) at skill.cpp:13486
fail = <optimized out>
res = <optimized out>
target = <optimized out>
src = 0x5555793e3d74
sd = <optimized out>
md = 0x5555793e3d74
ud = <optimized out>
flag = 0
sc = 0x5555793e426c
#5 0x0000555555916ea4 in do_timer (tick=<optimized out>) at timer.cpp:373
tid = <optimized out>
diff = <optimized out>
__FUNCTION__ = "do_timer"
#6 0x00005555559129c8 in rathena::server_core::Core::start (this=this@entry=0x7fffffffe370, argc=1, argv=0x7fffffffe4a8) at core.cpp:389
next = <optimized out>
#7 0x0000555555593fb9 in main_core<rathena::server_map::MapServer> (argv=<optimized out>, argc=<optimized out>) at ../common/core.hpp:102
server = {<rathena::server_core::Core> = {_vptr.Core = 0x555555a9b170 <vtable for rathena::server_map::MapServer+16>,
m_status = rathena::server_core::e_core_status::RUNNING, m_type = rathena::server_core::e_core_type::MAP, m_run_once = false,
m_crashed = false}, <No data fields>}
server = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--[Status]: Request for connection of icgamelo1 (ip: xx.xxx.xxx.xxx)
ret
#8 main (argc=<optimized out>, argv=<optimized out>) at map.cpp:5380
No locals.
I got this gdb logs after the crash,
looks like something is wrong for this line of code
+ if(it.second->direct_inventory)
+ {
+ if(!pet_create_egg(sd,it.second->nameid))
+ {
+ struct item item_tmp = {};
+ item_tmp.nameid=it.second->nameid;
+ item_tmp.identify=1;
+
+ if((flag=pc_additem(sd,&item_tmp,1,LOG_TYPE_SCRIPT))){
+ clif_additem(sd,0,0,flag);
+ map_addflooritem(&item_tmp,1,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0,0);
+ }
+ }
+ }
+ else
+ {
+ // 'Cheat' for autoloot command: rate is changed from n/100000 to n/10000
+ int32 map_drops_rate = max(1, (it.second->rate / 10));
+ std::shared_ptr<s_item_drop> ditem = mob_setdropitem(*it.second, 1, md->mob_id);
+ mob_item_drop( md, dlist, ditem, 0, map_drops_rate, homkillonly || merckillonly );
+ }