Déboguer avec Visual Studio pour Mac

Important

La mise hors service de Visual Studio pour Mac est prévue pour le 31 août 2024, conformément à la stratégie de cycle de vie moderne de Microsoft. Bien que vous puissiez continuer à travailler avec Visual Studio pour Mac, il existe plusieurs autres options pour les développeurs sur Mac, telles que la version préliminaire de la nouvelle extension C# Dev Kit pour VS Code.

En savoir plus sur les chronologies de support et les alternatives.

Visual Studio pour Mac a des débogueurs qui prennent en charge des applications .NET Core, .NET Framework, Unity et Xamarin.

Visual Studio pour Mac utilise le débogueur Mono Soft, qui est implémenté dans le runtime Mono, ce qui permet de Visual Studio pour Mac de déboguer du code managé sur toutes les plateformes.

Le débogueur

Visual Studio pour Mac utilise le débogueur Mono Soft pour déboguer le code managé (C# ou F#) dans toutes les applications Xamarin. Le débogueur Mono Soft est différent des débogueurs standard dans la mesure où il s’agit d’un débogueur coopératif qui est intégré dans le runtime Mono : le code généré et le runtime Mono fonctionnent conjointement avec l’IDE pour fournir une expérience de débogage. Le runtime Mono expose les fonctionnalités de débogage via un protocole connecté, sur lequel vous pouvez trouver plus d’informations dans la documentation Mono.

Les débogueurs « durs » comme LLDB ou GDB contrôlent un programme sans connaissance ou coopération du programme débogué. Il peut toujours être utile lors du débogage d’applications Xamarin si vous avez besoin de déboguer du code iOS ou Android natif.

Pour les applications .NET Core et ASP.NET Core, Visual Studio pour Mac utilise le débogueur .NET Core. Ce débogueur est également un débogueur coopératif et fonctionne avec le runtime .NET.

Utilisation du débogueur

Pour démarrer le débogage d’une application, vérifiez toujours que la configuration est définie sur Debug. La configuration Debug fournit un ensemble pratique d’outils pour prendre en charge le débogage, comme les points d’arrêt, l’utilisation de visualiseurs de données et l’affichage de la pile des appels :

Debug configuration

Définition d'un point d'arrêt

Pour définir un point d’arrêt dans votre IDE, cliquez sur la zone de marge de votre éditeur, en regard du numéro de ligne où vous voulez marquer un arrêt :

Setting breakpoint in margin

Vous pouvez afficher tous les points d’arrêt définis dans votre code en accédant à la fenêtre Points d’arrêt :

List of breakpoints

Démarrer le débogage

Pour démarrer le débogage, sélectionnez le navigateur cible, l’appareil ou un simulateur/émulateur :

Debug configurationSelect target device

Ensuite, déployez votre application en cliquant sur le bouton Lecture ou en appuyant sur Cmd + Retour. Quand vous atteignez un point d’arrêt, le code est mis en surbrillance en jaune :

Highlight showing breakpoint has been hit

Des outils de débogage, comme celui utilisé pour inspecter les valeurs des objets, peuvent être utilisés à ce stade pour obtenir plus d’informations sur ce qui se passe dans votre code :

Debug visualizations

Points d’arrêt conditionnels

Vous pouvez également définir des règles qui dictent les circonstances dans lesquelles un point d’arrêt doit se produire. On parle alors d’ajout d’un point d’arrêt conditionnel. Pour définir un point d’arrêt conditionnel, accédez à la fenêtre Propriétés de point d’arrêt, ce que vous pouvez faire de deux façons :

  • Pour ajouter un nouveau point d’arrêt conditionnel, cliquez avec le bouton droit sur la marge de l’éditeur, à gauche du numéro de la ligne de code pour laquelle vous voulez définir un point d’arrêt, et sélectionnez Nouveau point d’arrêt :

Breakpoint context menu

  • Pour ajouter une condition à un point d’arrêt existant, cliquez sur le point d’arrêt et sélectionnez Propriétés de point d’arrêt ou, dans la fenêtre Points d’arrêt, sélectionnez le bouton Modifier le point d’arrêt, comme illustré ci-dessous :

Edit existing Breakpoint in Breakpoints Window

Vous pouvez ensuite entrer la condition selon laquelle vous voulez que le point d’arrêt se produise :

Edit Breakpoint conditions

Exécution de code pas à pas

Quand un point d’arrêt a été atteint, les outils de débogage vous permettent de prendre le contrôle de l’exécution du programme. Visual Studio pour Mac affiche quatre boutons, qui vous permettent d’exécuter le code pas à pas. Dans Visual Studio pour Mac, ils ressemblent à :

Buttons to step through code

Voici les quatre boutons :

  • Lecture : commence l’exécution du code, jusqu’au point d’arrêt suivant.
  • Pas à pas principal : exécute la ligne de code suivante. Si la ligne suivante est un appel de fonction, Pas à pas principal exécute la fonction et s’arrête à la ligne de code suivante après la fonction.
  • Pas à pas détaillé : exécute également la ligne de code suivante. Si la ligne suivante est un appel de fonction, Pas à pas détaillé s’arrête à la première ligne de la fonction, ce qui vous permet de continuer le débogage ligne par ligne de la fonction. Si la ligne suivante n’est pas une fonction, il se comporte comme pas à pas principal.
  • Pas à pas sortant : retourne à la ligne où la fonction active a été appelée.

Modifier l’instruction suivante

Lorsque le débogueur est suspendu, une flèche dans la marge indique la ligne de code qui sera exécutée ensuite. Vous pouvez sélectionner et faire glisser la flèche vers une autre ligne de code afin d’exécuter une autre instruction. Vous pouvez également cliquer avec le bouton droit sur une ligne de code et sélectionner Définir l’instruction suivante dans le menu contextuel.

Drag and drop arrow to set next statement

Attention

La modification de la ligne d’exécution actuelle peut entraîner un comportement inattendu dans une application. Il existe également certaines conditions dans lesquelles la modification de l’instruction suivante à exécuter n’est pas possible. Par exemple, faire glisser la flèche d’une méthode vers une autre méthode ne fonctionnera pas. Dans ces cas non pris en charge, Visual Studio pour Mac affiche une boîte de dialogue pour vous informer qu’il n’est pas possible de modifier la ligne d’exécution actuelle.

Débogage des bibliothèques de classes de Mono

Les produits Xamarin sont livrés avec le code source pour les bibliothèques de classes de Mono, que vous pouvez utiliser pour avancer pas à pas à partir du débogueur pour examiner comment les choses fonctionnent à l’arrière-plan.

Comme cette fonctionnalité consomme plus de mémoire pendant le débogage, elle est désactivée par défaut.

Pour activer cette fonctionnalité, accédez à Visual Studio pour Mac > Préférences > Débogueur et vérifiez que l’option « pas à pas détaillé dans du code externe » est sélectionnée, comme illustré ci-dessous :

Step into external code option

Voir aussi