Partager via


Déboguer au moment de la conception dans Visual Studio (C#, C++/CLI, Visual Basic, F#)

Pour déboguer du code au moment de la conception plutôt que pendant l’exécution d’une application, vous pouvez utiliser la fenêtre Exécution.

Pour déboguer du code XAML derrière une application à partir du concepteur XAML, comme des scénarios de liaison de données déclaratives, vous pouvez utiliser Déboguer>Attacher au processus.

Utiliser la fenêtre Exécution

Vous pouvez utiliser la fenêtre Exécution de Visual Studio pour exécuter une fonction ou une sous-routine sans exécuter votre application. Si la fonction ou la sous-routine contient un point d’arrêt, Visual Studio s’arrête au point d’arrêt. Vous pouvez ensuite utiliser les fenêtres du débogueur pour examiner l’état de votre programme. Cette fonctionnalité est appelée débogage au moment de la conception.

L’exemple suivant est en Visual Basic. Vous pouvez également utiliser la fenêtre Exécution au moment de la conception dans les applications C#, F# et C++/CLI. Pour C++ ou l’interface CLI, compilez sans l’option /clr pour utiliser la fenêtre Exécution.

  1. Collez le code suivant dans une application console Visual Basic vierge :

    Module Module1
    
        Sub Main()
            MySub()
        End Sub
    
        Function MyFunction() As Decimal
            Static i As Integer
            i = i + 1
            Return i
        End Function
    
        Sub MySub()
            MyFunction()
    
        End Sub
    End Module
    
  2. Définissez un point d’arrêt sur la ligne Fonction de fin.

  3. Ouvrez la fenêtre Exécution en sélectionnant Déboguer>Windows>Exécution. Tapez ?MyFunction dans la fenêtre, puis appuyez sur Entrée.

    Le point d’arrêt est atteint et la valeur de MyFunction dans la fenêtre Variables locales est 1. Vous pouvez examiner la pile des appels et d’autres fenêtres de débogage pendant que l’application est en mode arrêt.

  4. Sélectionnez Continuer dans la barre d’outils de Visual Studio. L’application se termine et 1 est retourné dans la fenêtre Exécution. Assurez-vous que vous êtes toujours en mode conception.

  5. Tapez à nouveau ?MyFunction dans la fenêtre Exécution et appuyez sur Entrée. Le point d’arrêt est atteint et la valeur de MyFunction dans la fenêtre Variables locales est 2.

  6. Sans sélectionner Continuer, tapez ?MySub() dans la fenêtre Exécution, puis appuyez sur Entrée. Le point d’arrêt est atteint et la valeur de MyFunction dans la fenêtre Variables locales est 3. Vous pouvez examiner l’état de l’application pendant que l’application est en mode arrêt.

  7. Sélectionnez Continuer. Le point d’arrêt est atteint à nouveau et la valeur de MyFunction dans la fenêtre Variables locales est désormais 2. La fenêtre Exécution retourne L’expression a été évaluée et n’a aucune valeur.

  8. Sélectionnez à nouveau Continuer. L’application se termine et 2 est retourné dans la fenêtre Exécution. Assurez-vous que vous êtes toujours en mode conception.

  9. Pour effacer le contenu de la fenêtre Exécution, cliquez avec le bouton droit de la souris dans la fenêtre et sélectionnez Tout effacer.

Déboguer un contrôle XAML personnalisé au moment de la conception en l’attachant au concepteur XAML

  1. Ouvrez votre solution ou votre projet dans Visual Studio.

  2. Générez la solution/le projet.

  3. Ouvrez la page XAML contenant le contrôle personnalisé que vous souhaitez déboguer.

    Pour les projets UWP ciblant Windows build 16299 ou version ultérieure, cette étape démarre le processus UwpSurface.exe. Pour les projets WPF ciblant Windows build 16299 ou version ultérieure, cette étape démarre le processus WpfSurface.exe. Pour les versions WPF ou UWP antérieures à Windows build 16299, cette étape démarre le processus XDesProc.exe.

  4. Ouvrez une deuxième instance de Visual Studio. N’ouvrez pas de solution ou de projet dans la deuxième instance.

  5. Dans la deuxième instance de Visual Studio, ouvrez le menu Déboguer et choisissez Attacher au processus….

  6. Selon votre type de projet (voir les étapes précédentes), sélectionnez le processus UwpSurface.exe, WpfSurface.exeou XDesProc.exe dans la liste des processus disponibles.

  7. Dans le champ Attacher à de la boîte de dialogue Attacher au processus, choisissez le type de code approprié pour le contrôle personnalisé que vous souhaitez déboguer.

    Si votre contrôle personnalisé a été écrit dans un langage .NET, choisissez le type de code .NET approprié, par exemple Managé (CoreCLR). Si votre contrôle personnalisé a été écrit en C++, choisissez Natif.

  8. Attachez la deuxième instance de Visual Studio en cliquant sur le bouton Attacher.

  9. Dans la deuxième instance de Visual Studio, ouvrez les fichiers de code associés au contrôle personnalisé que vous souhaitez déboguer. Veillez à ouvrir seulement les fichiers, et non la solution ou le projet entier.

  10. Placez les points d’arrêt nécessaires dans les fichiers ouverts précédemment.

  11. Dans la première instance de Visual Studio, fermez la page XAML contenant le contrôle personnalisé que vous souhaitez déboguer (la même page que celle que vous avez ouverte dans les étapes précédentes).

  12. Dans la première instance de Visual Studio, ouvrez la page XAML que vous avez fermée à l’étape précédente. Le débogueur s’arrête alors au premier point d’arrêt que vous avez défini dans la deuxième instance de Visual Studio.

  13. Déboguez le code dans la deuxième instance de Visual Studio.