2016-12-05 11 views
0

У меня есть приложение, которое использует Qt, оно работает на некоторых машинах (Windows 7 64 бит, Windows Server Standard 32bits) и на других машинах (Windows Server 2012 R2 64bit, Windows 10 Pro 64bit), это дает Исключение SEH. Я пытался отлаживать это в течение некоторого времени, но я не знаю, как найти корень.Ошибка Qt5Core.dll

Это исключение не попало в 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, но не смог найти корень проблемы (Altough, что может быть связано с моей очень мало опыта работы с ним).

Что еще я могу сделать, чтобы узнать, что происходит?

+0

Убедитесь, что вы не имеете другую версию Qt на своем пути. – drescherjm

+0

@drescherjm Я копирую те же DLL на компьютерах и использую их локально, кроме исполняемого файла – mathiasfk

+1

Попробуйте ProcDump - https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx – ManuelH

ответ

0

Я обнаружил, что enabling /EHa (Управление структурированными исключениями) в компиляторе решает мою проблему, поскольку я могу использовать мой код обработки исключений по умолчанию (try/catch).

прилагая это мой .pro сделал это:

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