首页 > 其他 > 详细

QDebug &operator<<出错(根据QString来找,是不得要领的,而是应该根据QString所在的对象来思考)

时间:2016-01-18 20:25:17      阅读:576      评论:0      收藏:0      [点我收藏+]

程序运行后,总是崩溃在这个地方:
inline QDebug &operator<<(const QString & t)

我应该用什么办法找出是哪个QString出了问题呢?QString是自释放的,为什么还会有这种问题呢?-

---------------------------------------------------------------------------------------

理论:实际原因找了半天,是因为包含QString这个对象被delete了两次,自然出错。但是根据QString来找,是不得要领的,而是应该根据QString所在的对象来思考。

实际:更具体一点,我在一个析构函数里调用了qDebug() << m_logname; 语句。因此第二次调用delete的时候,会首先调用析构函数,然后再释放内存。此时就出错了,因为对象不存在,这个m_logname自然也不存储。虽然QString是自释放的,但是QString的指针本身被指向一个不存在的区域,还是会出错的。这时候自释放都已经帮不上什么忙了。

 

QDebug &operator<<出错(根据QString来找,是不得要领的,而是应该根据QString所在的对象来思考)

原文:http://www.cnblogs.com/findumars/p/5140196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!