Qt 崩溃 corrupted double-linked list Aborted
创始人
2024-05-28 12:46:19
头图

文章目录

    • 摘要
    • 1 使用全局静态变量
    • 2 不取第一个和最后一个数
    • 3 将数据计算放到同一线程计算
    • 4 替换槽函数
    • 5 修改传值为const
    • 6 神奇的环境因素
    • 7 更神奇的板子差异
    • 8 另一个细节Aborted
    • 最后

关键字: QtAbortedcorrupteddoublelinked

摘要

额,结论,没有搞定,最后通过守护进程先糊弄过去,这个项目过了证就扔了,所以目前不准备在修复,这里简单记录下我都尝试了那些东西

corrupted double-linked list Aborted,谷歌翻译的结果就是 双链表损坏。

image-20230302162748571

1 使用全局静态变量

遇到这个问题首先就是要百度,有一个声音说是重复释放了,所以我这里尝试把我函数中所有的局部变量都弄成静态全局变量,这样测试还是没有解决问题。

2 不取第一个和最后一个数

其实到这里,已经开始不自信了,项目中用到了多线程,数据交换用的是vector,线程A 每次都是追加一个数据,删除第一个数据,线程B读取线程A的数据,并进行相关计算,开始我只直觉读取vector的begin 和end 了,后面做了+1 和-1,想的是不是加锁没有成功,导致,最后发现还是会崩溃。

3 将数据计算放到同一线程计算

后面我尝试吧数据的计算都放到一个线程里面,另一个线程只读线程的属性值就可以,但是还是一样的崩溃。

4 替换槽函数

其实这个也不知道有没有实际的作用,我开始是将数据B的读取数据写到了一个定时器的槽函数里面,这样每次定时去读取数据,发现崩溃后,我尝试了定时器发送信号,在线程里面在实现一个槽函数,来读取数据,测试结果还是崩溃

5 修改传值为const

这个理解其实应该是有偏差的了,我开始给函数传vector 的时候,是直接传递的,这里其实应该也是传递了一个指针,发现层亏后,我在将函数参数加了const ,结果还是崩溃

6 神奇的环境因素

我在X86 的机器上挂Debug测试没有测到崩溃的时候,而在真实的Arm板子上跑就会崩溃,这个也是一个搞不定的问题。阿西,

7 更神奇的板子差异

板子是同一个板子,只是系统稍微有点差别,在家里好歹可以撑到40分钟,甚至更长的几小时,在现场基本就是30分钟内必然崩溃,而我板子试试安装的库可能更多一点,按道理,没啥差别,都是厂家自带的系统。

8 另一个细节Aborted

这里我感觉,我的程序不是自己运行崩溃了,而是被系统给kill了。所以问题出在哪里呢。

最后

到这里,我也没有彻底解决这个问题,所以我准备重写了。

参考资料

https://bbs.csdn.net/topics/392140813?list=lz

https://stackoverflow.com/questions/18035080/malloc-crashes-saying-corrupted-double-linked-list

https://www.cnpython.com/qa/1324332

https://www.coder.work/article/112395

https://www.zhangshilong.cn/work/172885.html

https://blog.csdn.net/weixin_39094034/article/details/110225908

https://blog.csdn.net/liuzehn/article/details/80830279

https://cloud.tencent.com/developer/article/2054858

https://www.dovov.com/sigabrt6.html


博客签名2021

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...