Game.core problem

09/30/2016 11:50 kralcocuk#1
hi. i have a problem

I can not find the cause of the error

Code:
(gdb) bt
#0  DESC::Packet (this=0xb, c_pvData=0x290ef000, iSize=60) at desc.cpp:436
#1  0x0806f5f9 in COfflineShop::Broadcast (this=0x2a2429c0, data=0x290ef000,
    bytes=60) at offline_shop.cpp:982
#2  0x08070288 in COfflineShop::BroadcastUpdateItem (this=0x2a2429c0,
    bPos=11 '\v', dwPID=73286, bDestroy=true) at offline_shop.cpp:865
#3  0x08071a2a in COfflineShop::Buy (this=0x2a2429c0, ch=0x4eb01000,
    bPos=<value optimized out>) at offline_shop.cpp:701
#4  0x0806c80a in COfflineShopManager::Buy (this=0xffffaed8, ch=0x4eb01000,
    pos=11 '\v') at offlineshop_manager.cpp:585
#5  0x0815ec61 in CInputMain::OfflineShop (this=0x465a6d1c, ch=0x4eb01000,
    data=0x58f0f000 "8\001\001\vR\236\016", uiBytes=3) at input_main.cpp:1513
#6  0x08164cc1 in CInputMain::Analyze (this=0x465a6d1c, d=0x465a6c80,
    bHeader=<value optimized out>, c_pData=0x58f0f000 "8\001\001\vR\236\016")
    at input_main.cpp:3780
#7  0x0815077b in CInputProcessor::Process (this=0x465a6d1c,
    lpDesc=0x465a6c80, c_pvOrig=0x58f0f000, iBytes=5,
    r_iBytesProceed=@0xffffa774) at input.cpp:99
#8  0x08118993 in DESC::ProcessInput (this=0x465a6c80) at desc.cpp:314
#9  0x082728e4 in io_loop (fdw=0x291347a0) at main.cpp:930
#10 0x082732c0 in idle () at main.cpp:812
#11 0x082747f7 in main (argc=1, argv=0xffffde50) at main.cpp:476

(gdb) bt full
#0  DESC::Packet (this=0xb, c_pvData=0x290ef000, iSize=60) at desc.cpp:436
No locals.
#1  0x0806f5f9 in COfflineShop::Broadcast (this=0x2a2429c0, data=0x290ef000,
    bytes=60) at offline_shop.cpp:982
        it = {<std::tr1::__detail::_Hashtable_iterator_base<std::pair<CHARACTER* const, bool>,false>> = {_M_cur_node = 0x38bbc170,
    _M_cur_bucket = 0x436a73c4}, <No data fields>}
#2  0x08070288 in COfflineShop::BroadcastUpdateItem (this=0x2a2429c0,
    bPos=11 '\v', dwPID=73286, bDestroy=true) at offline_shop.cpp:865
        pack = {header = 47 '/', size = 60, subheader = 2 '\002'}
        pack2 = {pos = 11 '\v', item = {vnum = 0, price = 0, count = 0 '\0', display_pos = 0 '\0', alSockets = {0, 0, 0, 0},
    aAttr = {{bType = 0 '\0', sValue = 0}, {bType = 0 '\0', sValue = 0}, {
        bType = 0 '\0', sValue = 0}, {bType = 0 '\0', sValue = 0}, {
        bType = 0 '\0', sValue = 0}, {bType = 0 '\0', sValue = 0}, {
        bType = 0 '\0', sValue = 0}}}}
        buf = {buf = 0x291a59c0, forceDelete = false}
#3  0x08071a2a in COfflineShop::Buy (this=0x2a2429c0, ch=0x4eb01000,
    bPos=<value optimized out>) at offline_shop.cpp:701
        tch = 0x4a6db000
        saticiadi = "Nick\0008?▒U<?▒UO8\212(\v\000\000\000\231}7A"
        szQuery = "SELECT pos,count,vnum,price,socket0,socket1,socket2,socket3,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtyp---Type <return> to continue, or q <return> to quit---
e3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,att"...
        pMsg = {_M_ptr = 0x53d31b80}
        row = <value optimized out>
        dwPrice = 14000000
        dwItemVnum = 50300
        bCount = 14 '\016'
        alSockets = {1, 0, 0, 0}
        aAttr = {{bType = 0 '\0', sValue = 0}, {bType = 0 '\0', sValue = 0}, {
    bType = 0 '\0', sValue = 0}, {bType = 0 '\0', sValue = 0}, {
    bType = 0 '\0', sValue = 0}, {bType = 0 '\0', sValue = 0}, {
    bType = 0 '\0', sValue = 0}}
        itemvnum = 0
        ofbnk = "SELECT yang FROM player.offlinebanka WHERE id=73286\000\000\001\000\000\000\000\000\002\000\005\000\000\000▒,D\b\001\000\000\000\001\000\000\000\002\000\000\000P\232▒▒\001\000\000\000\200▒$Xh\001\000\000\200▒$X\005\000\000\000\021\000\000\000▒\232▒▒▒\213\021\b▒G\023)Z\000\000\000\200▒$X\002\000\000\000\001\000\000\000▒\232▒▒3\233▒▒\\>>\b\002\000\000\000\000\001"...
        llYang = 14000000

input_main.cpp 3780

Code:
        case HEADER_CG_OFFLINE_SHOP:
            if ((iExtraLen = OfflineShop(ch, c_pData, m_iBufferLeft)) < 0)
                return -1;
            break;
1503

Code:
    TPacketCGShop * p = (TPacketCGShop *) data;

    if (uiBytes < sizeof(TPacketCGShop))
        return -1;

    if (test_server)
        sys_log(0, "CInputMain::OfflineShop ==> SubHeader %d", p->subheader);

    const char * c_pData = data + sizeof(TPacketCGShop);
    uiBytes -= sizeof(TPacketCGShop);

    switch (p->subheader)
    {
        case SHOP_SUBHEADER_CG_END:
            sys_log(1, "INPUT: %s OFFLINE_SHOP: END", ch->GetName());
            COfflineShopManager::instance().StopShopping(ch);
            return 0;
        case SHOP_SUBHEADER_CG_BUY:
        {
            if (uiBytes < sizeof(BYTE) + sizeof(BYTE))
                return -1;

            BYTE bPos = *(c_pData + 1);
            sys_log(1, "INPUT: %s OFFLINE_SHOP: BUY %d", ch->GetName(), bPos);
            COfflineShopManager::instance().Buy(ch, bPos);
            return (sizeof(BYTE) + sizeof(BYTE));
        }
offlineshop_manager.cpp:585
Code:
    int ret = pkOfflineShop->Buy(ch, pos);
offline_shop.cpp:701

Code:
    BroadcastUpdateItem(bPos, pid, true);
offline_shop.cpp:865
Code:
void COfflineShop::BroadcastUpdateItem(BYTE bPos, DWORD dwPID, bool bDestroy)
{
    TPacketGCShop pack;
    TPacketGCShopUpdateItem pack2;

    TEMP_BUFFER buf;

    pack.header = HEADER_GC_OFFLINE_SHOP;
    pack.subheader = SHOP_SUBHEADER_GC_UPDATE_ITEM;
    pack.size = sizeof(pack) + sizeof(pack2);
    pack2.pos = bPos;

    if (bDestroy)
    {
        pack2.item.vnum = 0;
        pack2.item.count = 0;
        pack2.item.price = 0;
        memset(pack2.item.alSockets, 0, sizeof(pack2.item.alSockets));
        memset(pack2.item.aAttr, 0, sizeof(pack2.item.aAttr));
    }

    buf.write(&pack, sizeof(pack));
    buf.write(&pack2, sizeof(pack2));
    Broadcast(buf.read_peek(), buf.size());
}

at offline_shop.cpp:982
Code:
void COfflineShop::Broadcast(const void * data, int bytes)
{

    for (GuestMapType::iterator it = m_map_guest.begin(); it != m_map_guest.end(); ++it)
    {
        LPCHARACTER ch = it->first;
		if (ch != NULL)
		{
			if (ch->GetDesc() != NULL)
			{
				ch->GetDesc()->Packet(data, bytes);			
			}			
		}
    }
}