平台崩溃之operator new异常(十六)-2010-6-21

今天早上10点30左右平台出现user breakpoint异常,调用栈如下:

MSVCRTD! 10211920()
MSVCRTD! 10211863()
MSVCRTD! 1020a53a()
operator new(unsigned int 12) line 552 + 48 bytes
_bstr_t::_bstr_t(const char * 0x004bac70 `string') line 287 + 57 bytes
CDbAccessor2::Connect() line 896 + 47 bytes
HTX_DBPool::GetDbConnection(const char * 0x00e2eaf1, int -1, unsigned char 1) line 113 + 13 bytes
CBasePlugInModule::GetDbConnection(const char * 0x00e2eaf1, int -1, unsigned char 1) line 210 + 25 bytes
GetDbConnection(const char * 0x00e2eaf1, int -1, unsigned char 1) line 225 + 17 bytes
CDBCGETTER2::GetDBC(const char * 0x00e2eaf1, short 2) line 295 + 24 bytes
CSEMQ::GetData(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x3089f411 "select object_id,dest_type,dest_id,f018c_0031,f005n_0031,f019n_0031 from tb_0031 where ((dest_type=1 and dest_id=20423) or (dest_type=2 and dest_id >= 204230000 and dest_id<=204239999)) and f009n_0031=0 "}) line 691 + 54 bytes
CSepSEMQ::GetData() line 106 + 12 bytes
GetDataProc(void * 0x00e370c0) line 583 + 13 bytes
exec_task_func(void * 0x30888080) line 32 + 15 bytes
ACED! 00585ab7()
ACED! 005859e4()
ACED! 004fa836()
MSVCRTD! 1020c323()
KERNEL32! 7c824829()

平台日志21号有300多条10511异常,如下:
[2010-06-21 00:10:54:640](线程4272)插件bizop.dll处理"产品信息发布通知"(7:10511)产生异常
[2010-06-21 00:10:57:187](线程4272)插件bizop.dll处理"产品信息发布通知"(7:10511)产生异常
[2010-06-21 00:10:59:734](线程4272)插件bizop.dll处理"产品信息发布通知"(7:10511)产生异常
且全是同一个线程(4272)产生异常。

该请求来自20192机构,是台本地服务器。
经查,异常来自图片的xml被截断所致,是我之前处理平台问题时改出来的bug,早就解决了。为何这个包会在20192这个本地机构上。
本地服务器没有用过这个有问题的代码阿?20192是2.5的版本,一直没有升过级。不解?

怎么解决此问题了?
只有联系20192这家机构,远程看个究竟,并删除有问题的0031中的包,否则会无限循环下去。

 

 

 

很高兴为您回答这个问题。以下是关于C++模板与异常的实验报告: 一、实验目的 通过实验,掌握C++模板和异常的使用方法,提高编程技能。 二、实验内容 1. 实现一个模板类,可以实现数组的基本操作,并能够处理异常情况。 2. 实现一个函数模板,可以实现两个数的交换,并能够处理异常情况。 三、实验步骤及方法 1. 实现模板类 (1)定义一个模板类,包含数组的大小和指向数组元素的指针。 (2)实现数组基本操作,包括初始化数组、释放数组、获取数组元素等。 (3)使用try-catch语句,处理数组越界的异常情况。 2. 实现函数模板 (1)定义一个函数模板,可以实现两个数的交换。 (2)使用try-catch语句,处理类型不匹配的异常情况。 四、实验结果 1. 实现模板类 模板类的定义如下: ```c++ template<typename T> class Array { public: Array(int size); ~Array(); T & operator[](int i); private: T * m_ptr; int m_size; }; ``` 模板类的实现如下: ```c++ template<typename T> Array<T>::Array(int size) { m_size = size; m_ptr = new T[size]; } template<typename T> Array<T>::~Array() { delete [] m_ptr; } template<typename T> T & Array<T>::operator[](int i) { if (i < 0 || i >= m_size) { throw std::out_of_range("Index out of range."); } return m_ptr[i]; } ``` 2. 实现函数模板 函数模板的定义如下: ```c++ template<typename T> void swap(T & a, T & b); ``` 函数模板的实现如下: ```c++ template<typename T> void swap(T & a, T & b) { T temp = a; a = b; b = temp; } ``` 五、实验总结 通过本次实验,我学会了如何使用C++模板和异常,这对我的编程技能提高有很大帮助。同时,我也发现了异常处理的重要性,可以有效地避免程序崩溃的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值