最近将我的项目转换为使用Qt的opengl支持(因此使用Qt 5.4.0 MSVC2013 OpenGL 64bit套件),我一直无法正确调试,因为我的应用程序总是在qscopedpointer的第134行'崩溃' .H。
我可以在调试或发布模式下完全正常运行,但实际上调试会导致此崩溃。在切换到此工具包并使用QGLWidget之前,这个问题也从未体现过。
我不知道如何处理这个问题。反汇编者告诉我这个:
Qt5Guid!QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >::data [c:\work\build\qt5_workdir\w\s\qtbase\src\corelib\tools\qscopedpointer.h @ 134]:
0x7fee2d5a2f0 mov qword ptr [rsp+8],rcx
0x7fee2d5a2f5 <+0x0005> mov rax,qword ptr [rsp+8]
0x7fee2d5a2fa <+0x000a> mov rax,qword ptr [rax]
第四行无法运行。
堆栈跟踪:
c:\work\build\qt5_workdir\w\s\qtbase\src\corelib\tools\qscopedpointer.h:135: error: Exception at 0x7fee2d5a2fa, code: 0xc0000005: read access violation at: 0x0, flags=0x0 (first chance)
在我的应用程序中没有任何地方可以直接调用qscopedpointer,所以我不知道问题是什么。
有没有人有任何建议?我现在可能不需要调试器,但我可以保证将来需要它。
我的代码不仅很大,而且我想不出任何相关的块发布,因为调试器不会在任何我的行上崩溃。
编辑:如果在调试器到达此行时尝试恢复调试,有时会继续。