Share via


Débogage juste-à-temps

Cette rubrique s'applique à :

Édition

Visual Basic

C#

F#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas

Pro, Premium et Ultimate

La rubrique s'applique La rubrique s'applique La rubrique s'applique La rubrique s'applique La rubrique ne s'applique pas

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 le code managé hébergé dans une application native, par exemple les visualiseurs. Si vous installez le .NET Framework sur Windows Server 2003 ou Windows 2000 SP3 (ou version ultérieure), le débogage juste-à-temps ne fonctionnera pas pour un processus s'exécutant sous un compte d'utilisateur limité dans une session des services Terminal Server tant que l'ordinateur n'aura pas redémarré.

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 2010 ou sur une instance de Visual Studio 2010 déjà en cours d'exécution.

  2. Pour utiliser Visual Studio pour tous les incidents futurs, cliquez sur Utiliser par défaut le débogueur sélectionné actuellement.

  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, cliquez sur Exécuter.

  2. Dans la boîte de dialogue Exécuter, tapez regedit, puis cliquez sur OK.

  3. 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

  4. 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

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

  6. 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 Autorisations de débogage distant.

  • 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émarrez Visual Studio, ouvrez la boîte de dialogue Attacher au processus à partir du menu Débogage, puis cherchez 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.

  • Le débogueur n'a pas pu être démarré, car aucun utilisateur n'est connecté.

    Cette erreur se produit lorsque le débogage juste-à-temps tente de démarrer Visual Studio sur un ordinateur où aucun utilisateur n'a ouvert de 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 si vous avez des doutes, n'effectuez pas l'attachement à ce processus.

Concepts

Sécurité du débogueur

Autres ressources

Présentation du débogueur

Historique des modifications

Date

Historique

Motif

Juillet 2010

Consolidation des informations dans une seule rubrique pour une meilleure détectabilité.

Commentaires client.

Août 2010

Suppression du message d'erreur obsolète.

Commentaires client.