Débogage juste-à-temps

Le débogage juste-à-temps lance Visual Studio automatiquement lorsqu'une exception ou un incident se produit dans une application qui s'exécute hors de Visual Studio.Cela vous permet de tester votre application lorsque Visual Studio n'est pas en cours d'exécution et de démarrer le débogage avec Visual Studio lorsqu'un problème se produit.

Le débogage juste-à-temps ne fonctionne pas pour les applications de mémoire windows.Le débogage juste-à-temps ne fonctionne pas pour le code managé hébergé dans une application native, par exemple les visualiseurs.

Utilisation du débogage juste-à-temps

Lorsque vous installez Visual Studio, le débogage juste-à-temps est activé par défaut.Si vous devez désactiver ou réactiver le débogage juste-à-temps, consultez Activation ou désactivation du débogage juste-à-temps.

Lorsque le débogage juste-à-temps est activé, vous pouvez tester votre application hors de Visual Studio.Lorsqu'un incident ou une exception se produit, vous voyez une boîte de dialogue s'afficher avec un message similaire à ceci :

Une exception non gérée ('System.TypeInitializationException') s'est produite dans terrarium.exe [3384]

Lorsque cette boîte de dialogue s'affiche, vous pouvez commencer le débogage à l'aide de la procédure suivante.

Pour commencer le débogage juste-à-temps lorsqu'une erreur se produit

  1. Dans la boîte de dialogue débogage juste-à-temps, dans la liste Débogueurs possibles , cliquez sur nouvelle instance de Visual Studio 2012 ou sur une instance de Visual Studio qui exécute déjà.

  2. Pour utiliser Visual Studio automatiquement pour tous les incidents de l'avenir, cliquez sur Définissez le débogueur actuellement sélectionné comme valeur par défaut.

  3. Si vous voulez choisir les types de code que vous pourrez déboguer, cliquez sur Choisir manuellement les moteurs de débogage.Si vous ne choisissez pas cette option, Visual Studio sélectionne automatiquement les moteurs de débogage qui conviennent au type de code de votre programme.

  4. Cliquez sur OK.

  5. Si votre application contient un assembly avec du code non fiable, une boîte de dialogue comportant un avertissement de sécurité s'affiche.Cette boîte de dialogue vous permet de décider s'il faut poursuivre ou non le débogage.Avant de continuer le débogage, déterminez si vous faites confiance au code.Avez-vous écrit le code vous-même ?Faites-vous confiance à l'auteur du code ?Si l'application s'exécute sur un ordinateur distant, reconnaissez-vous le nom du processus ?Même si l'application s'exécute localement, cela ne signifie pas nécessairement qu'elle peut être approuvée.Dans Internet Explorer, par exemple, un contrôle ActiveX malveillant peut s'exécuter.Envisagez la possibilité que du code malveillant s'exécute sur votre ordinateur.Si vous décidez que le code que vous allez déboguer est fiable, cliquez sur Déboguer.Sinon, cliquez sur Ne pas déboguer.

Activation ou désactivation du débogage juste-à-temps

Vous pouvez activer ou désactiver le débogage juste-à-temps dans la boîte de dialogue Options.

Pour activer ou désactiver le débogage juste-à-temps

  1. Dans le menu Outils, cliquez sur Options.

  2. Dans la boîte de dialogue Options, sélectionnez le dossier Débogage.

  3. Dans le dossier Débogage, sélectionnez la page Juste-à-temps.

  4. Dans la zone Activer le débogage juste-à-temps de ces types de code, sélectionnez ou désactivez les types de programmes adéquats : Managé, Natif ou Script.

    Pour désactiver le débogage juste-à-temps, vous devez travailler avec des privilèges de niveau administrateur.L'activation du débogage juste-à-temps définit une clé de Registre, que vous ne pouvez modifier que si vous disposez des privilèges d'administrateur.

  5. Cliquez sur OK.

Par défaut, les applications Windows Forms ont un gestionnaire d'exceptions de haut niveau qui permet au programme de continuer à s'exécuter s'il peut être récupéré.Par conséquent, vous devez procéder comme suit pour activer le débogage juste-à-temps d'une application Windows Forms.

Pour activer le débogage juste-à-temps d'un Windows Forms

  1. Affectez true à la valeur jitDebugging dans la section system.windows.form du fichier machine.config ou application.exe.config :

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>
    
  2. Dans une application Windows Forms C++, vous devez également définir DebuggableAttribute dans un fichier .config ou dans votre code.Si vous effectuez la compilation avec /Zi et sans /Og, le compilateur définit cet attribut pour vous.Toutefois, si vous souhaitez déboguer une version Release non optimisée, vous devez le définir vous-même.Pour ce faire, ajoutez la ligne suivante au fichier AssemblyInfo.cpp de votre application :

    [assembly:System::Diagnostics::DebuggableAttribute(true, true)]; 
    

    Pour plus d’informations, consultez DebuggableAttribute.

Le débogage juste-à-temps peut toujours être activé même si Visual Studio n'est plus installé sur votre ordinateur.Lorsque Visual Studio n'est pas installé, vous ne pouvez pas désactiver le débogage juste-à-temps dans la boîte de dialogue Options de Visual Studio.Dans ce cas, vous pouvez désactiver le débogage juste-à-temps en modifiant le Registre Windows.

Pour désactiver le débogage juste-à-temps en modifiant le Registre

  1. Dans le menu Démarrer , la recherche et le regedit.exeexécuté

  2. Dans la fenêtre Éditeur du Registre, recherchez et supprimez les clés de Registre suivantes :

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

  3. Si votre ordinateur exécute un système d'exploitation 64 bits, supprimez également les clés de Registre suivantes :

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

  4. Veillez à ne pas supprimer ou modifier par inadvertance d'autres clés de Registre.

  5. Fermez la fenêtre Éditeur du Registre.

Erreurs du débogage juste-à-temps

Vous pouvez voir s'afficher les messages d'erreur suivants associés au débogage juste-à-temps.

  • Une exception win32 non gérée s'est produite dans <programme>. Le débogage juste-à-temps de cette exception a échoué avec l'erreur suivante : L'utilisateur connecté n'avait pas accès pour déboguer l'application défectueuse.

    Ce message indique un échec du débogage juste-à-temps, car vous n'avez pas les autorisations d'accès appropriées.Pour plus d'informations sur les autorisations requises, consultez Remote Debugging Permissions.

  • Impossible de s'attacher au processus bloqué.Le programme spécifié n'est pas un programme Windows ou MS-DOS.

    Cette erreur se produit lorsque vous essayez de vous attacher à un processus qui s'exécute comme un autre utilisateur sous Windows 2000.

    Pour contourner ce problème, démarrer Visual Studio, ouvrez la boîte de dialogue Attacher au processus le menu Déboguer , et trouver le processus à déboguer dans la liste Processus disponibles .Si vous ne connaissez pas le nom du processus, consultez la boîte de dialogue Débogueur juste-à-temps Visual Studio et notez l'ID de processus.Sélectionnez le processus dans la liste Processus disponibles et cliquez sur Attacher.Dans la boîte de dialogue Débogueur juste-à-temps Visual Studio, cliquez sur Non pour fermer la boîte de dialogue.

  • Impossible de démarrer le débogueur car aucun utilisateur n'est connecté.

    Cette erreur se produit lorsque les tests de débogage juste-à-temps pour démarrer Visual Studio sur un ordinateur où aucun utilisateur n'a ouvert une session sur la console.Dans la mesure où aucun utilisateur n'a ouvert de session, il n'y a aucune session utilisateur pour afficher la boîte de dialogue Débogage juste-à-temps.

    Pour résoudre ce problème, ouvrez une session sur l'ordinateur.

  • Classe non inscrite.

    Cette erreur indique que le débogueur a essayé de créer une classe COM qui n'est pas inscrite, probablement en raison d'un problème d'installation.

    Pour résoudre ce problème, utilisez le disque d'installation pour réinstaller ou réparer votre installation de Visual Studio.

Voir aussi

Référence

Juste-à-temps, Débogage, boîte de dialogue Options

Avertissement de sécurité : L'attachement à un processus appartenant à un utilisateur non fiable peut être dangereux. Si les informations suivantes semblent suspectes ou en cas de doutes, n'attachez pas ce processus.

Concepts

Sécurité du débogueur

Autres ressources

Présentation du débogueur