我看过
@L_404_0@线程.我的情况略有不同,我正在努力弄清楚“这个”指针是否被破坏.
我使用Qt 4.6.2框架,使用自己的QTreeView模型.我得到的回溯(86帧长,有很多递归,这就是为什么我没有粘贴整个事情,在这个pastebin只涉及他们的代码.
它最终在QBasicAtomicInt :: deref中的一些汇编器上出现故障,但很明显,它已经进一步下降,这三个框架证明了这一点:
#15 0x01420fd3 in QFrame::event (this=0x942bba0,e=0xbf8eb624) at widgets/qframe.cpp:557 #16 0x014bb382 in QAbstractScrollArea::viewportEvent (this=0x4,e=0x93f9240) at widgets/qabstractscrollarea.cpp:1036 #17 0x0156fbd7 in QAbstractItemView::viewportEvent (this=0x942bba0,event=0xbf8eb624) at itemviews/qabstractitemview.cpp:1610
在框架17中,这是0x942bb0.在框架16中,这应该是相同的,在框架17中,它调用其祖先实现相同的方法.但是这变成0x4.
有趣的是,在框架15(再次,框架16已经称其祖先执行相同的功能),’this’指针恢复为0x942bba0.
如果您查看完整回溯的贴图,您可能会看到一些“优化的值”.我已经通过优化编译了应用程序;我现在有gcc设置为-g3 -O0,所以当下次发生时,我可能会有更多的东西.但是,当然现在我不能让它崩溃 – 这是一个相当困难的错误发生(但是非常重要的修复),所以我不认为这太可疑了.
给定的优化是,这个指针= 0x4不寻常或绝对错误?奇怪的是,在任何这些viewportEvent框架中没有真正的代码 – 它们只是对事件类型进行切换,它通过switch语句进行切换,并返回其祖先的实现.
Valgrind似乎并没有抛出任何问题,尽管我还没有在Valgrind中崩溃.
有没有人看过这个行为?可能是什么原因造成的?