2016-12-05 5 views
0

J'ai une application qui utilise Qt, il fonctionne sur certaines machines (Windows 7 64 bits, Windows Server Standard 32 bits), et sur d'autres machines (Windows Server 2012 R2 64 bits, Windows 10 Pro 64 bits), il donne un SEH exception. J'ai essayé de déboguer ceci pendant un certain temps mais je ne sais pas comment trouver la racine.Qt5Core.dll plantant

Cette exception n'est pas détectée par try/catch, et je n'ai pas pu utiliser __try/__ sauf parce qu'elle ne peut pas être utilisée avec la première, et aussi qu'elle ne peut être utilisée que dans un code qui ne l'est pas. exiger le déroulement (si je me souviens bien).

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 

J'ai essayé aussi d'utiliser windbg, mais n'a pas été en mesure de trouver la racine du problème (barbante, qui pourrait être dû à mon très peu d'expérience avec elle).

Que puis-je faire d'autre pour trouver ce qui se passe?

+0

Assurez-vous que vous ne disposez pas d'une version différente de Qt dans votre chemin. – drescherjm

+0

@drescherjm Je copie les mêmes DLL à travers les ordinateurs, et l'utilise localement à côté de l'exécutable – mathiasfk

+1

Essayez ProcDump - https://technet.microsoft.com/fr-fr/sysinternals/dd996900.aspx – ManuelH

Répondre

0

J'ai trouvé que enabling /EHa (Structured Exception Handling) sur le compilateur résout mon problème, car je peux alors utiliser mon code de gestion des exceptions par défaut (try/catch).

à mon Adjonction .pro a fait:

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