首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >*侦察到*双倍自由或腐败(快件):

*侦察到*双倍自由或腐败(快件):
EN

Stack Overflow用户
提问于 2010-02-04 05:38:07
回答 3查看 20.8K关注 0票数 3

对QByteArray进行清除的调用会生成以下异常:

* glibc检测到* /home/yan/FPS2 2/FPS2 2:双重免费或损坏(快件):

0 ? 1?

2免费

3 QByteArray::clear()

4 FPSengine::getDatagram

5 FPSengine::xmitData

6 FPSengine::getData

7线程数据记录::运行

8 ??

9 start_thread

10克隆

11 ??0

这是个qt错误,还是与我的代码有关?我知道QObjects线程不安全(QT定义,不是多个线程调用同一个对象实例的相同函数),但我的函数有互斥。而且,即使同一个函数经常被调用,我也很少得到这个错误。防止这种情况的一种方法是env var MALLOC_CHECK_ 0

这个url与一个类似的问题有关,一些帖子似乎暗示它是由一个不兼容的glibc版本引起的。

*** glibc detected *** perl: double free or corruption (!prev): 0x0c2b7138 ***

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-26 01:02:24

这是由于应用程序是多线程的,对象属于主线程,但在另一个线程中使用,即使我在QBytearray上使用了互斥,但使用它执行readDatagram的UDPsocket也在mainthread...and中--是的,我需要udpSocket也在主线程中。

票数 2
EN

Stack Overflow用户

发布于 2010-02-04 05:44:04

它可能是许多不同的东西,包括引用函数调用返回的临时QByteArray,但在Qt中不太可能是一个bug。

下面是一些调试的想法:

  • 运行它并查看它是否会突出显示问题
  • 针对具有可用于它的调试符号的Qt版本运行应用程序
  • 启用核心转储,并查看是否有核心文件
票数 4
EN

Stack Overflow用户

发布于 2010-02-04 05:45:43

我很怀疑你在qt中发现了错误。该错误可能有许多原因,但重要的是,您有对已经释放的内存的引用。运行调试器,并尝试看看是什么导致了问题。使用gdb和val差制,希望您能够跟踪问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2197547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档