我有一个使用Qt的应用程序,它适用于某些计算机(Windows 7 64位,Windows Server Standard 32位),而在其他计算机(Windows Server 2012 R2 64位,Windows 10 Pro 64位)上,它会产生SEH异常。我一直试图调试这段时间,但我不知道如何找到根。
这个异常没有被try / catch捕获,我无法使用__try / __,因为它不能与第一个一起使用,并且它说它只能用于不需要的代码放松(如果我没记错的话)。
Problem signature:
Problem Event Name: APPCRASH
Application Name: gpeh_parser.exe
Application Version: 0.0.0.0
Application Timestamp: 584051a0
Fault Module Name: Qt5Core.dll
Fault Module Version: 5.1.1.0
Fault Module Timestamp: 521a52ae
Exception Code: c0000005
Exception Offset: 00023087
OS Version: 6.3.9600.2.0.0.272.7
Locale ID: 11274
Additional Information 1: 5861
Additional Information 2: 5861822e1919d7c014bbb064c64908b2
Additional Information 3: 01d7
Additional Information 4: 01d7340064827245f2249cd1f1a7c264
我也试过使用windbg,但无法找到问题的根源(尽管可能是由于我对它的经验很少)。
我还能做些什么才能找到正在发生的事情?
答案 0 :(得分:0)
我发现编译器上的enabling /EHa
(结构化异常处理)解决了我的问题,因为我可以使用我的默认异常处理代码(try / catch)。
将此附加到我的.pro上:
win* {
QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa
QMAKE_CXXFLAGS_STL_ON = /EHa
}