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;
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));
}
Code:
int ret = pkOfflineShop->Buy(ch, pos);
Code:
BroadcastUpdateItem(bPos, pid, true);
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);
}
}
}
}






