Debug session time: Fri Jul 25 10:04:31.000 2014 (GMT+8)
System Uptime: not available
Process Uptime: 7 days 15:56:46.000
异常产生时间:10:04:31.000
0:163> ~163
.163 Id: 74c.1538 Suspend: 0 Teb: 7fb8c000 Unfrozen
线程堆栈
0ff5f88c 03403b19 52160070 011b6a44 0ff5f9a8 lssdk!CompressData+0x44 [e:\svn\供应宝\trunk\源代码\server\common\hotfox\source\umx_func.cpp @ 37]
0ff5fa2c 033fec45 0ff5fb84 0ff5fb88 0ff5fb8c lssdk!umxns::CUMXApp::Stream_v3+0x7f9 [e:\svn\供应宝\trunk\源代码\server\common\hotfox\source\umx3.cpp @ 305]
0ff5fa94 004c4c51 0ff5fb84 0ff5fb88 0ff5fb8c lssdk!umxns::CUMXApp::Stream+0x55 [e:\svn\供应宝\trunk\源代码\server\common\hotfox\source\umx.cpp @ 576]
0ff5fb14 0049f080 00000000 e3950d09 7fe76520 hotfoxd!umxns::CUMX2::Serialize+0x81 [e:\svn\workdb\供应宝\hotfox\trunk\api\source\umx_helper.cpp @ 135]
0ff5fba0 00458191 5341cee0 0ff5fc24 0ff5fc28 hotfoxd!UMXProtMod::GetRawData+0x50 [e:\svn\workdb\供应宝\hotfox\trunk\umx_prot_mod.cpp @ 43]
0ff5fc4c 0045886b 5341cee0 7c280003 7bf10690 hotfoxd!HTX_Network::prepare_send_message+0xb1 [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 327]
0ff5fd6c 004593a4 00000d3c 5341cee0 00000000 hotfoxd!HTX_Network::SendMsg+0x48b [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 406]
0ff5fe3c 0045a67c 75b1baf8 7fe76520 7fe76520 hotfoxd!HTX_Network::send_msg_block+0x344 [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 533]
0ff5fe98 004a9391 75b1baf8 7fe76520 7fe76520 hotfoxd!HTX_Send_Task::handle_message_block+0x1c [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 896]
0ff5ff10 0058897f 7fe76520 00588950 00000000 hotfoxd!HTX_Task_Base::svc+0x191 [e:\svn\workdb\供应宝\hotfox\trunk\task.cpp @ 158]
0ff5ff20 00588dcb 7fe76520 30cd03eb 7ff4bfe0 ACE!ACE_Task_Base::svc_run+0x2f [e:\svn\vendor\ace\ace-5.4\ace\task.cpp @ 218]
0ff5ff58 00588d33 30cd03d7 00000000 00000000 ACE!ACE_Thread_Adapter::invoke_i+0x6b [e:\svn\vendor\ace\ace-5.4\ace\thread_adapter.cpp @ 150]
0ff5ff78 781329bb 7ff4bfe0 30fe1887 00000000 ACE!ACE_Thread_Adapter::invoke+0x73 [e:\svn\vendor\ace\ace-5.4\ace\thread_adapter.cpp @ 93]
0ff5ffb0 78132a47 00000000 7c82481f 07f817c8 msvcr80!_callthreadstartex+0x1b [f:\sp\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
0ff5ffb8 7c82481f 07f817c8 00000000 00000000 msvcr80!_threadstartex+0x66 [f:\sp\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326]
0ff5ffec 00000000 781329e1 07f817c8 00000000 kernel32!BaseThreadStart+0x34
异常代码位置
int CompressData(const char* indata,unsigned long inlen,char **outdata,unsigned long &outlen)
{
char* p;
outlen = compressBound(inlen) + sizeof(unsigned long);
*outdata = new char[outlen];
p = *outdata; ///< p==NULL
(*(unsigned long*)p) = inlen; ///< crash
p += sizeof(unsigned long);
int ret=Z_OK;
ret = compress((unsigned char*)p,&outlen,(unsigned char*)indata,inlen);
if (ret == Z_OK)
{
outlen += sizeof(unsigned long);
}
return ret;
}
0:163> dv
Unable to find processor type for D:\Supply Server\lssdk.dll, using default
indata = 0x52160070 "--- memory read error at address 0x52160070 ---"
inlen = 0x11b6a44
outdata = 0x0ff5f9a8
outlen = 0x0ff5f9a4
ret = 1550467744
p = 0x00000000 ""
p=NULL
inlen=0x11b6a44 (不到18M)
申请不到压缩18M数据的输出缓冲区.
对照log文件:
[2014-07-25 10:04:04:472][线程5432][1][20][0][][thread 5432]file:e:\svn\workdb\供应宝\hotfox\trunk\network.cpp line:354
[2014-07-25 10:04:04:472][线程5432][1][20][0][]HTX_Network::SendMsg msgtype=6,msgid=15002,handle=3399,do_close=0,cb_arg=0...
[2014-07-25 10:04:04:472][线程5432][1][20][0][][thread 5432]file:e:\svn\workdb\供应宝\hotfox\trunk\network.cpp line:445
[2014-07-25 10:04:04:472][线程5432][1][20][0][]HTX_Network::SendMsg end.
数据包为15002的确认消息,包大小约18M.
7号托管是否开启了/3G模式.
System Uptime: not available
Process Uptime: 7 days 15:56:46.000
异常产生时间:10:04:31.000
0:163> ~163
.163 Id: 74c.1538 Suspend: 0 Teb: 7fb8c000 Unfrozen
Priority: 0 Priority class: 32
线程堆栈
0ff5f88c 03403b19 52160070 011b6a44 0ff5f9a8 lssdk!CompressData+0x44 [e:\svn\供应宝\trunk\源代码\server\common\hotfox\source\umx_func.cpp @ 37]
0ff5fa2c 033fec45 0ff5fb84 0ff5fb88 0ff5fb8c lssdk!umxns::CUMXApp::Stream_v3+0x7f9 [e:\svn\供应宝\trunk\源代码\server\common\hotfox\source\umx3.cpp @ 305]
0ff5fa94 004c4c51 0ff5fb84 0ff5fb88 0ff5fb8c lssdk!umxns::CUMXApp::Stream+0x55 [e:\svn\供应宝\trunk\源代码\server\common\hotfox\source\umx.cpp @ 576]
0ff5fb14 0049f080 00000000 e3950d09 7fe76520 hotfoxd!umxns::CUMX2::Serialize+0x81 [e:\svn\workdb\供应宝\hotfox\trunk\api\source\umx_helper.cpp @ 135]
0ff5fba0 00458191 5341cee0 0ff5fc24 0ff5fc28 hotfoxd!UMXProtMod::GetRawData+0x50 [e:\svn\workdb\供应宝\hotfox\trunk\umx_prot_mod.cpp @ 43]
0ff5fc4c 0045886b 5341cee0 7c280003 7bf10690 hotfoxd!HTX_Network::prepare_send_message+0xb1 [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 327]
0ff5fd6c 004593a4 00000d3c 5341cee0 00000000 hotfoxd!HTX_Network::SendMsg+0x48b [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 406]
0ff5fe3c 0045a67c 75b1baf8 7fe76520 7fe76520 hotfoxd!HTX_Network::send_msg_block+0x344 [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 533]
0ff5fe98 004a9391 75b1baf8 7fe76520 7fe76520 hotfoxd!HTX_Send_Task::handle_message_block+0x1c [e:\svn\workdb\供应宝\hotfox\trunk\network.cpp @ 896]
0ff5ff10 0058897f 7fe76520 00588950 00000000 hotfoxd!HTX_Task_Base::svc+0x191 [e:\svn\workdb\供应宝\hotfox\trunk\task.cpp @ 158]
0ff5ff20 00588dcb 7fe76520 30cd03eb 7ff4bfe0 ACE!ACE_Task_Base::svc_run+0x2f [e:\svn\vendor\ace\ace-5.4\ace\task.cpp @ 218]
0ff5ff58 00588d33 30cd03d7 00000000 00000000 ACE!ACE_Thread_Adapter::invoke_i+0x6b [e:\svn\vendor\ace\ace-5.4\ace\thread_adapter.cpp @ 150]
0ff5ff78 781329bb 7ff4bfe0 30fe1887 00000000 ACE!ACE_Thread_Adapter::invoke+0x73 [e:\svn\vendor\ace\ace-5.4\ace\thread_adapter.cpp @ 93]
0ff5ffb0 78132a47 00000000 7c82481f 07f817c8 msvcr80!_callthreadstartex+0x1b [f:\sp\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
0ff5ffb8 7c82481f 07f817c8 00000000 00000000 msvcr80!_threadstartex+0x66 [f:\sp\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326]
0ff5ffec 00000000 781329e1 07f817c8 00000000 kernel32!BaseThreadStart+0x34
异常代码位置
int CompressData(const char* indata,unsigned long inlen,char **outdata,unsigned long &outlen)
{
char* p;
outlen = compressBound(inlen) + sizeof(unsigned long);
*outdata = new char[outlen];
p = *outdata; ///< p==NULL
(*(unsigned long*)p) = inlen; ///< crash
p += sizeof(unsigned long);
int ret=Z_OK;
ret = compress((unsigned char*)p,&outlen,(unsigned char*)indata,inlen);
if (ret == Z_OK)
{
outlen += sizeof(unsigned long);
}
return ret;
}
0:163> dv
Unable to find processor type for D:\Supply Server\lssdk.dll, using default
indata = 0x52160070 "--- memory read error at address 0x52160070 ---"
inlen = 0x11b6a44
outdata = 0x0ff5f9a8
outlen = 0x0ff5f9a4
ret = 1550467744
p = 0x00000000 ""
p=NULL
inlen=0x11b6a44 (不到18M)
申请不到压缩18M数据的输出缓冲区.
对照log文件:
[2014-07-25 10:04:04:472][线程5432][1][20][0][][thread 5432]file:e:\svn\workdb\供应宝\hotfox\trunk\network.cpp line:354
[2014-07-25 10:04:04:472][线程5432][1][20][0][]HTX_Network::SendMsg msgtype=6,msgid=15002,handle=3399,do_close=0,cb_arg=0...
[2014-07-25 10:04:04:472][线程5432][1][20][0][][thread 5432]file:e:\svn\workdb\供应宝\hotfox\trunk\network.cpp line:445
[2014-07-25 10:04:04:472][线程5432][1][20][0][]HTX_Network::SendMsg end.
数据包为15002的确认消息,包大小约18M.
7号托管是否开启了/3G模式.