Partager via


Modifications de code prises en charge (C#)

Cette rubrique s'applique à :

Édition

Visual Basic

C#

F#

C++

Web Developer

Express

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

Pro, Premium et Ultimate

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

Modifier & Continuer gère la plupart des types de modifications du code dans le corps des méthodes. Toutefois, la plupart des modifications en dehors du corps des méthodes et quelques autres à l'intérieur ne peuvent pas s'appliquer pendant le débogage. Pour appliquer ces modifications non prises en charge, vous devez arrêter le débogage et redémarrer avec une version nouvelle du code.

Les modifications suivantes ne peuvent pas être appliquées à du code C# pendant une session de débogage :

  • Modifications à l'instruction en cours ou à toute autre instruction active.

    Les instructions actives incluent toutes les instructions, dans les fonctions figurant dans la pile des appels, qui ont été appelées pour parvenir à l'instruction en cours.

    L'instruction en cours est marquée par un arrière-plan jaune dans la fenêtre source. D'autres instructions actives sont marquées par un arrière-plan grisé et sont en lecture seule. Ces couleurs par défaut peuvent être modifiées dans la boîte de dialogue Options.

  • Modifications aux symboles globaux, notamment :

    • Ajout de types nouveaux.

    • Ajout de méthodes à un type.

    • Modification de la signature d'un type.

    • Ajout de champs, d'événements ou de propriétés à un type.

  • Modification d'une méthode anonyme ou de toute méthode qui contient une méthode anonyme. Ces méthodes sont marquées par un arrière-plan grisé.

  • Ajout d'une nouvelle méthode anonyme.

  • Ajout, suppression ou modification d'attributs.

  • Ajout, suppression ou modification de directives using.

  • Suppression ou modification de variables locales. L'ajout de variables locales est autorisé.

  • Ajout d'un foreach, d'un using ou d'un lock autour de l'instruction active.

  • Modification d'une méthode qui contient une instruction yield return ou yield break.

  • Modification d'un constructeur avec un champ initialisé par une méthode anonyme.

Code unsafe

Les modifications apportées à du code unsafe présentent les mêmes restrictions que celles qui portent sur du code sécurisé, avec une restriction supplémentaire :

  • Modifier & Continuer ne prend pas en charge les modifications de code unsafe dans une méthode qui contient l'opérateur stackalloc. Cela s'applique uniquement aux méthodes actives. Lorsque vous déboguez, toute fonction actuellement dans la pile des appels est une fonction active.

Exceptions

Modifier & Continuer prend en charge les modifications aux blocs catch, finally, et try avec quelques exceptions pour les blocs se trouvant dans des méthodes actives, telles que celles qui se trouvent actuellement dans la pile des appels.

  • Dans une fonction active qui est la fonction la plus récente dans la pile des appels, Modifier & Continuer ne prend pas en charge les modifications suivantes :

    • Ajout d'un bloc catch ou finally autour de l'instruction active.

    • Ajout de gestionnaires d'exceptions imbriqués avec des niveaux d'imbrication supérieurs à six.

  • Dans une fonction active qui n'est la fonction la plus récente dans la pile des appels, Modifier & Continuer ne prend pas en charge les modifications suivantes :

    • Ajout d'un bloc catch,finally ou try autour de l'instruction active.

    • Ajout de gestionnaires d'exceptions imbriqués avec des niveaux d'imbrication supérieurs à six.

    • Modification du code dans un bloc try qui contient l'instruction active.

Scénarios non pris en charge

Modifier & Continuer n'est pas disponible dans les scénarios de débogage suivants :

  • Débogage de code LINQ. Pour plus d'informations, consultez Modifier & Continuer avec LINQ.

  • Débogage en mode mixte (natif/managé).

  • Débogage SQL.

  • Débogage d'un dump Dr. Watson.

  • Modification de code après une exception non gérée, lorsque l'option Dérouler la pile des appels sur les exceptions non gérées n'est pas sélectionnée.

  • Débogage d'une application runtime incorporée.

  • Débogage d'une application avec Attacher à au lieu d'exécuter l'application en sélectionnant Démarrer dans le menu Déboguer.

  • Débogage de code optimisé.

  • Débogage de code managé lorsque la cible est une application 64 bits. Pour utiliser Modifier & Continuer, vous devez affecter x86 à la cible. (Propriétés de Projet, onglet Compiler, Paramètres avancés du compilateur).

  • Débogage d'une version ancienne de votre code après l'échec de génération d'une nouvelle version en raison d'erreurs de build.

Voir aussi

Tâches

Comment : utiliser Modifier & Continuer (C#)

Référence

Modifier & Continuer (Visual C#)

Autres ressources

Erreurs et avertissements de Modifier & Continuer (C#)