这个问题有很多原因,具体工程具体分析,不能一概而论。
首先对问题进行排查,把多余的初始化全部注释掉,一个一个来尽量精简。
然后发现是我有一个
QSemaphore 数组,然后访问的时候越界了,对,是读取越界,不是写入越界。然后就报了这个:
ASSERT failure in QMutexLocker: "QMutex pointer is misaligned"
错误。
这个超出了大部分的人的认知,按理一个数组,读取越界之外的内存,是没有问题的,但是这里偏偏报错了。
本文探讨了一次在使用QSemaphore时遇到的越界问题,导致了不常见的ASSERTfailure in QMutexLocker错误。重点在于理解为何数组越界会导致这种特定错误,并提供了排查和解决过程。
这个问题有很多原因,具体工程具体分析,不能一概而论。
首先对问题进行排查,把多余的初始化全部注释掉,一个一个来尽量精简。
然后发现是我有一个
QSemaphore 数组,然后访问的时候越界了,对,是读取越界,不是写入越界。然后就报了这个:
ASSERT failure in QMutexLocker: "QMutex pointer is misaligned"
错误。
这个超出了大部分的人的认知,按理一个数组,读取越界之外的内存,是没有问题的,但是这里偏偏报错了。
2973
2276
1万+

被折叠的 条评论
为什么被折叠?