Les prouesses de débogage de Visual Studio s'étendent au-delà de la surface, en utilisant des « noms magiques » générés par le compilateur pour gérer diverses entités de programme. Ces noms, bien que souvent cachés dans l'interface utilisateur, permettent des fonctionnalités de débogage et des optimisations avancées. Comprendre ces modèles de dénomination est essentiel pour naviguer efficacement dans le fonctionnement interne du débogueur.
Bien que Microsoft ne documente pas publiquement tous les détails de la mise en œuvre, l'analyse de la source C# GeneratedNames.cs
révèle des informations précieuses sur ces conventions de dénomination. Notez que ces conventions sont sujettes à changement sans préavis.
Variables cachées et stockage temporaire :
Locales inutilisées : Le débogueur marque les variables locales inutilisées avec le suffixe __Deleted$
, un indicateur clair de l'optimisation du compilateur.
Variables temporaires : Les variables temporaires utilisent le CS$X$Y
schéma de dénomination :
X
: Représente la nature du temporaire (par exemple, 0 pour une durée de vie courte, 1 pour les valeurs de retour, 2 pour les instructions de verrouillage, etc.). Une clé complète est fournie ci-dessous.Y
: Un numéro séquentiel identifiant l'instance temporaire spécifique.Noms spéciaux générés par le compilateur :
Le compilateur génère des noms uniques pour diverses structures et opérations internes, notamment :
state
)current
)locals
)CachedAnonymousMethodDelegate
)iterator
)DisplayClass
)FixedBuffer
)AnonymousType
, Field
, TPar
)BackingField
)finally
blocs (Finally
)SiteContainer
, Site
, SiteDelegate
)ComRefCallLocal
)LockTaken
)TransparentIdentifier
)La formule du nom magique :
Le modèle général de ces noms magiques est le suivant : P<n>C__SI
, où :
P
: CS$
préfixe pour les délégués mis en cache et les instances de classe d'affichage ; sinon, vide.<n>
: Le nom de la variable d'origine (le cas échéant).C
: Un seul caractère (1 à s) indiquant le type d'entité.S
: Un suffixe descriptif facultatif.I
: Un identifiant unique facultatif.Clé de type variable temporaire :
264 : chaîne temporaire d'instructions fixes
Cette ventilation détaillée offre une compréhension plus claire des noms souvent cryptiques rencontrés lors du débogage dans Visual Studio. N'oubliez pas que ces informations sont basées sur l'observation et sont susceptibles de changer avec les futures mises à jour du compilateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!