Débogage d'une nouvelle application Windows Windows 64 bits dans Visual Studio 2010? Vous pourriez trouver des exceptions non perdues ne déclenchent pas le débogueur. Cela est dû à la couche d'émulation WOW64, qui intercepte les exceptions dans le code répondant aux notifications de gestionnaire de fenêtres 64 bits (comme l'événement Form1_Load
).
Cause profonde et impact
Le problème provient de l'incapacité de Windows à gérer correctement les exceptions passant du code 32 bits (votre application) au code 64 bits (la source de notification). Cela rend le débogage difficile car l'exception est invisible pour le débogueur.
Solutions
Voici plusieurs façons de résoudre ce problème:
Load
Event dans try/catch
: Entrez votre code de gestionnaire d'événements Load
dans un bloc try/catch
. Utilisez Environment.FailFast()
dans le bloc catch
pour un crash contrôlé avec un rapport détaillé. UnhandledExceptionMode
: Dans votre méthode Main()
, appelez Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)
pour empêcher la boucle de message de supprimer l'exception pendant le débogage. Load
Utilisation de l'événement: Consignez si le gestionnaire d'événements Load
a vraiment besoin de tout son code. Le déplacement de certaines actions vers le constructeur pourrait aider. Ces solutions ne résolvent pas le problème sous-jacent, mais ils fournissent des moyens pratiques de déboguer les exceptions non perdues dans ce scénario.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!