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

Nom Valeur Description
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, sauf qu’il définit la propriété IsJITTrackingEnabled sur false. Toutefois, étant donné que le suivi JIT est toujours activé, la valeur de propriété est ignorée dans la version 2.0 ou ultérieure.

Notez que, contrairement à l’indicateur DisableOptimizations , l’indicateur None ne peut pas être utilisé pour désactiver les optimisations JIT.

Default 1

Indique au compilateur juste-à-temps (JIT) d’utiliser son comportement par défaut, ce qui inclut l’activation des optimisations, la désactivation de la prise en charge de la modification et de la poursuite, et l’utilisation de points de séquence de magasin de symboles s’il est présent. À compter de la version 2.0 de .NET Framework, les informations de suivi JIT, le décalage Microsoft langage intermédiaire (MSIL) vers le décalage de code natif au sein d’une méthode est toujours généré.

IgnoreSymbolStoreSequencePoints 2

Utilisez les points de séquence MSIL implicites, et non les points de séquence de base de données de programme (PDB). Les informations symboliques incluent normalement au moins un décalage msIL (Microsoft intermediate language) pour chaque ligne source. Lorsque le compilateur juste-à-temps (JIT) est sur le point de compiler une méthode, il demande aux services de profilage une liste de décalages MSIL qui doivent être conservés. Ces décalages MSIL sont appelés points de séquence.

EnableEditAndContinue 4

Activez la modification et continuez. Modifier et continuer 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.

DisableOptimizations 256

Désactivez les optimisations effectuées par le compilateur pour réduire, accélérer et optimiser votre fichier de sortie. Les optimisations entraînent une réorganisation du code dans le fichier de sortie, ce qui peut rendre le débogage difficile. En règle générale, l’optimisation doit être désactivée lors du débogage. Dans les versions 2.0 ou ultérieures, combinez cette valeur par défaut (par défaut | DisableOptimizations) pour activer le suivi JIT et désactiver les optimisations.

Remarques

L’énumération DebuggableAttribute.DebuggingModes spécifie comment le runtime consiste à 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 à .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 débogueurables. Dans la version 2.0 et les versions ultérieures, les valeurs d’énumération ont l’effet suivant.

Mode débogage Résultat
None Suivi activé, optimisations JIT activées
Par défaut Suivi activé, optimisations JIT activées
DisableOptimizations Suivi activé, optimisations JIT activées
Valeur par défaut | DisableOptimizations Suivi sur, optimisations JIT désactivées

Les points de séquence sont utilisés pour indiquer des emplacements dans le code MSIL (Microsoft Intermediate Language) que l’utilisateur du 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 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 PDB (Program Database) pour obtenir la liste des 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 à l’aide d’instructions MSIL .nop" Ces compilateurs doivent définir l’indicateur IgnoreSymbolStoreSequencePoints pour informer le Common Language Runtime de ne pas charger le fichier PDB.

Remarque

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 en fonction des paramètres du compilateur tels que /debug et /optimize.

S’applique à