После недавнего преобразования моего проекта для использования поддержки opengl в Qt (и, следовательно, с использованием 64-битного набора Qt 5.4.0 MSVC2013 OpenGL) я не смог правильно отладить, потому что мое приложение всегда «зависало» в строке 134 файла qscopedpointer.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, поэтому я понятия не имею, в чем проблема.
У кого-нибудь есть совет? Возможно, мне сейчас не нужен отладчик, но я могу гарантировать, что он понадобится мне в будущем.
Мало того, что мой код огромен, но я не могу думать о каких-либо значимых кусках для публикации, так как отладчик не падает ни на одном из мой линий.
Редактировать: Если попытаться возобновить отладку, когда отладчик достигает этой строки, она иногда продолжается.
Задача ещё не решена.