Qt5Core.dll崩溃

时间:2016-12-05 17:42:31

标签: c++ qt qt5 seh

我有一个使用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,但无法找到问题的根源(尽管可能是由于我对它的经验很少)。

我还能做些什么才能找到正在发生的事情?

1 个答案:

答案 0 :(得分:0)

我发现编译器上的enabling /EHa(结构化异常处理)解决了我的问题,因为我可以使用我的默认异常处理代码(try / catch)。

将此附加到我的.pro上:

win* {
   QMAKE_CXXFLAGS_EXCEPTIONS_ON = /EHa
   QMAKE_CXXFLAGS_STL_ON = /EHa
}