DebuggableAttribute.DebuggingModes Énumération

Définition

Spécifie le mode de débogage pour le compilateur juste-à-temps (JIT).

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes = 
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes = 
Public Enum DebuggableAttribute.DebuggingModes
Héritage
DebuggableAttribute.DebuggingModes
Attributs

Champs

Default 1

Fait en sorte que le compilateur JIT utilise son comportement par défaut, notamment l'activation des optimisations, la désactivation de la prise en charge de la fonctionnalité Modifier & Continuer et l'utilisation de points de séquence de magasin de symboles s'ils existent. À compter de .NET Framework version 2.0, les informations de suivi JIT, l'offset MSIL par rapport à l'offset code natif au sein d'une méthode, sont toujours générées.

DisableOptimizations 256

Désactivez les optimisations exécutées par le compilateur pour réduire la taille de votre fichier de sortie et le rendre plus rapide et plus efficace. Les optimisations entraînent une réorganisation du code dans le fichier de sortie, ce qui peut compliquer le débogage. En général, l'optimisation doit être désactivée au cours du débogage. Dans les versions 2.0 ou ultérieures, combinez cette valeur avec Default (Default | DisableOptimizations) pour activer le suivi JIT et désactiver les optimisations.

EnableEditAndContinue 4

Activez Modifier & continuer. Ce mode vous permet d'apporter des modifications à votre code source pendant que votre programme est en mode arrêt. La possibilité de modifier et de continuer dépend du compilateur.

IgnoreSymbolStoreSequencePoints 2

Utilisez les points de séquence MSIL implicites, pas les points de séquence de la base de données du programme (PDB). En général, les informations sur les symboles comportent au moins un offset MSIL pour chaque ligne source. Lorsque le compilateur juste-à-temps (JIT) est sur le point de compiler une méthode, il sollicite la liste des offsets MSIL à conserver auprès des services de profil. Ces offsets MSIL sont appelés des points de séquence.

None 0

À compter de .NET Framework version 2.0, les informations de suivi JIT sont toujours générées et cet indicateur a le même effet que Default, à la différence qu'il affecte à la propriété IsJITTrackingEnabled la valeur false. Or, c'est parce que le suivi JIT est toujours activé que la valeur de la propriété est ignorée dans la version 2.0 ou les suivantes.

Contrairement à l'indicateur DisableOptimizations, il est à noter que l'indicateur None ne peut pas être utilisé pour désactiver les optimisations JIT.

Remarques

L’énumération DebuggableAttribute.DebuggingModes spécifie comment le runtime doit suivre les informations importantes pour le débogueur pendant la génération du code. Ces informations aident le débogueur à fournir une expérience de débogage riche. Contrairement au .NET Framework version 1.1, les versions 2.0 ou ultérieures ne vous permettent pas de désactiver le suivi par le compilateur juste-à-temps (JIT). Le suivi JIT est toujours activé pour les fichiers pouvant être débogués. Dans les versions 2.0 et ultérieures, les valeurs d’énumération ont l’effet suivant.

Mode débogage Résultats
Aucun Suivi activé, optimisations JIT activées
Par défaut Suivi activé, optimisations JIT activées
DisableOptimizations Suivi activé, optimisations JIT activées
Par défaut | Désactiver les optimisations Suivi activé, optimisations JIT désactivées

Les points de séquence sont utilisés pour indiquer les emplacements dans le code MSIL (Microsoft Intermediate Language) auxquels un utilisateur de débogueur s’attend à pouvoir faire référence de manière unique, par exemple pour définir un point d’arrêt. Le compilateur JIT garantit qu’il ne compile pas le MSIL à deux points de séquence différents dans une seule instruction native. Par défaut, le compilateur JIT examine le magasin de symboles dans le fichier de base de données du programme (PDB) pour obtenir une liste de points de séquence supplémentaires. Toutefois, le chargement du fichier PDB nécessite que le fichier soit disponible et ait un impact négatif sur les performances. À compter de la version 2.0, les compilateurs peuvent émettre des « points de séquence implicites » dans le flux de code MSIL via l’utilisation des instructions MSIL ».nop" Ces compilateurs doivent définir l’indicateur IgnoreSymbolStoreSequencePoints pour avertir le Common Language Runtime de ne pas charger le fichier PDB.

Notes

Cette énumération est principalement utilisée par les développeurs de langage. Il n’est généralement pas utilisé dans le développement d’applications. Les environnements de développement utilisent DebuggableAttribute.DebuggingModes des paramètres de compilateur tels que /debug et /optimize.

S’applique à