Débogueur Runtime (Cordbg.exe)

Mise à jour : novembre 2007

Le débogueur Runtime permet aux fournisseurs d'outils et aux développeurs d'applications de trouver et de corriger les bogues dans les programmes qui ont pour cible le Common Language Runtime du .NET Framework. Cet outil utilise l'API runtime Debug pour fournir des services de débogage. Le code source de Cordbg.exe est fourni en tant qu'exemple d'application. Les développeurs peuvent examiner ce code pour apprendre à utiliser les services de débogage. Pour l'instant, vous ne pouvez utiliser Cordbg.exe que pour déboguer du code managé ; il n'existe pas de prise en charge pour déboguer du code non managé.

Utilisez la première ligne de syntaxe ci-dessous pour démarrer une session Cordbg.exe. Utilisez la deuxième ligne à l'invite (cordbg) à l'intérieur d'une session Cordbg.exe.

cordbg [ProgramName[Program arguments]][optional arguments ]
command [command arguments]

Paramètres

Commande

Description

ap[pdomainenum] [option]

Énumère tous les domaines d'application, assemblys et modules du processus en cours. Si vous ne spécifiez pas d'argument option, la commande répertorie tous les domaines d'application, assemblys et modules du processus en cours. Après une opération d'attachement ou de détachement, vous devez spécifier la commande go pour reprendre l'exécution.

L'argument option peut avoir l'une des valeurs suivantes :

attach

Dresse la liste des domaines d'application du processus et invite l'utilisateur à sélectionner le domaine auquel il souhaite s'attacher.

detach

Dresse la liste des domaines d'application du processus et invite l'utilisateur à sélectionner le domaine dont il souhaite se détacher.

0

Dresse la liste des domaines d'application du processus.

1

Dresse la liste des domaines d'application et des assemblys du processus.

as[sociatesource] {s|b breakpoint id} filename

Associe le nom de fichier spécifié au pointeur de frame de pile en cours (option s) ou au point d'arrêt spécifié (option b).

a[ttach] pid

Attache le débogueur à un processus en cours d'exécution. Cordbg.exe supprime le programme qu'il est en train de déboguer (le cas échéant) et essaie de s'attacher au processus spécifié par l'argument pid . Le numéro d'identification de processus pid peut être au format décimal ou hexadécimal.

b[reak] [[file:] line number] |

[[ class::] function [:offset]]

Définit ou affiche des points d'arrêt. Si vous ne spécifiez aucun argument, l'outil affiche une liste des points d'arrêt actuels ; sinon, il définit un point d'arrêt à l'emplacement spécifié. Vous pouvez définir un point d'arrêt sur un numéro de ligne du fichier source en cours, sur un numéro de ligne d'un fichier source dont vous spécifiez le nom qualifié complet ou dans une méthode définie par une classe et un offset (facultatif).

Les points d'arrêt sont persistants d'une exécution à l'autre au cours d'une session. Vous pouvez utiliser la commande stop de la même manière que break.

Cordbg.exe affiche un point d'arrêt comme « non lié » s'il est impossible de lier l'emplacement spécifié au code. Lorsqu'un point d'arrêt n'est pas lié, cela signifie que le code sous-jacent correspondant à l'emplacement de ce point d'arrêt n'a pas encore été chargé. Cette situation peut se produire pour diverses raisons, par exemple un nom de fichier ou de classe mal orthographié (ces noms respectent la casse). D'autre part, les points d'arrêt ne seront pas liés si vous les définissez avant d'exécuter une application. Ils deviennent liés lorsque le code réel est chargé. Le débogueur essaie de lier automatiquement chaque point d'arrêt non lié lorsqu'il charge un module.

ca[tch] [event]

Affiche une liste de types d'événements ou spécifie un type d'événement qui provoque l'arrêt du débogueur. Si vous ne spécifiez aucun argument, l'outil affiche une liste de types d'événements parmi lesquels ceux qui arrêtent le débogueur sont marqués "on" et ceux qui sont ignorés sont marqués "off". Si vous spécifiez un argument, le débogueur s'arrête lorsque des événements du type spécifié se produisent. Par défaut, le débogueur s'arrête uniquement sur les événements de type exception non gérée (c'est-à-dire les exceptions de seconde chance). Les types d'événements qui arrêtent le débogueur sont persistants d'une exécution à l'autre au cours d'une session. Pour que le débogueur ignore un type d'événement particulier, utilisez la commande ignore.

L'argument event peut avoir l'une des valeurs suivantes :

e[xceptions] [exception type]

L'outil ajoute le type d'exception à une liste d'exceptions de première chance à intercepter. Si aucun type d'exception n'est spécifié, l'outil intercepte toutes les exceptions de première chance. Le type d'exception distingue la casse, par exemple, System.ArgumentException.

u[nhandled]

Exceptions non gérées

c[lass]

Événements de chargement de classe

m[odule]

Événements de chargement de module

t[hread]

Événements de démarrage de thread

conn[ect] machine_nameport

Pour les projets Smart Device.

Se connecte à un périphérique distant exécutant une application .NET Compact Framework.

Paramètre

Définition

machine_name

Obligatoire. Nom ou adresse IP de l'ordinateur distant.

Port

Obligatoire. Port à utiliser pour se connecter à l'ordinateur distant.

cont [count]

Continue le programme. Si vous ne spécifiez aucun argument, le programme continue une fois. Si vous spécifiez un argument, le programme continue le nombre de fois spécifié. Cette commande est utile pour continuer un programme lorsqu'un événement de chargement de classe, une exception ou un point d'arrêt arrête le débogueur. Vous pouvez utiliser la commande go de la même manière que vous utilisez cont.

del[ete] [breakpoint id, ]

Supprime des points d'arrêt. Si vous ne spécifiez aucun argument, l'outil supprime tous les points d'arrêt en cours. Si vous spécifiez un ou plusieurs arguments breakpoint id, l'outil supprime les points d'arrêt spécifiés. Pour obtenir les identificateurs des points d'arrêt, utilisez les commandes break ou stop. Vous pouvez utiliser la commande remove de la même manière que vous utilisez delete.

de[tach]

Détache le débogueur du processus en cours. Le processus se poursuit automatiquement et s'exécute comme si aucun débogueur n'était attaché à celui-ci.

dis[assemble] [0xaddress][{+|-} delta] [line count]

Affiche des instructions natives en code machine pour le pointeur d'instruction en cours ou l'adresse, si elle est spécifiée. Par défaut, le nombre d'instructions affichées est de cinq. Si vous spécifiez un argument linecount, l'outil affiche le nombre spécifié d'instructions supplémentaires avant et après le pointeur ou l'adresse d'instruction en cours. La dernière valeur de linecount utilisée devient l'argument par défaut pour la session en cours. Si vous spécifiez un argument delta, sa valeur est ajoutée au pointeur d'instruction en cours ou à l'adresse spécifiée pour commencer le désassemblage.

d[own] [count]

Descend le pointeur de frame de pile dans la pile vers les frames appelés par le frame en cours à des fins d'inspection. Si vous ne spécifiez aucun argument, le pointeur de frame de pile descend d'un frame. Si vous spécifiez un argument, le pointeur de frame de pile descend du nombre de frames spécifié. Si des informations de niveau source sont disponibles, l'outil affiche la ligne source associée au frame. Cette commande est souvent utilisée en association avec la commande up.

du[mp] address [count]

Vide un bloc de mémoire, le résultat étant au format hexadécimal ou décimal en fonction du mode du débogueur (consultez mode). L'argument address est l'adresse du bloc de mémoire. L'argument count est le nombre d'octets à vider.

ex[it]

Arrête le processus en cours et quitte le débogueur. Vous pouvez utiliser la commande quit comme la commande exit.

f[unceval] [class::] function [ arg0 arg1 ...argn]

Évalue la fonction spécifiée sur le thread en cours. L'outil enregistre le nouvel objet dans la variable $result et peut l'utiliser pour des évaluations ultérieures. Les arguments valides peuvent uniquement être d'autres variables, des entiers sur 4 octets et les constantes Null, True et False.

Remarque :

Dans le cas d'une fonction membre, le premier argument doit être un objet de la classe ou de la classe dérivée à laquelle la fonction membre appartient.

g[o] [count]

Voir cont.

h[elp] [command ]

Affiche la description des commandes spécifiées. Si vous ne spécifiez aucun argument, Cordbg.exe affiche une liste des commandes du débogueur. Vous pouvez utiliser la commande ? comme vous utilisez la commande help.

ig[nore] [event]

Affiche une liste de types d'événements ou spécifie un type d'événement que le débogueur devra ignorer. Si vous ne spécifiez pas d'argument event, l'outil affiche une liste de types d'événements parmi lesquels ceux que le débogueur ignore sont marqués "off" et ceux qui arrêtent le débogueur sont marqués "on". Si vous spécifiez un argument, l'outil ignore les événements du type spécifié. Pour définir un type d'événement qui arrête le débogueur, utilisez la commande catch.

L'argument event peut être l'un des types d'événements suivants :

e[xceptions] [exception type]

L'outil ajoute le type d'exception à une liste d'exceptions de première chance à ignorer. Si aucun type d'exception n'est spécifié, l'outil ignore toutes les exceptions de première chance. Le type d'exception distingue la casse, par exemple, System.ArgumentException.

u[nhandled]

Exceptions non gérées

c[lass]

Événements de chargement de classe

m[odule]

Événements de chargement de module

t[hread]

Événements de démarrage de thread

i[n] [count]

Voir step.

k[ill]

Arrête le processus en cours. Le débogueur reste actif pour traiter d'autres commandes.

l[ist] option

Affiche une liste des modules, classes ou fonctions globales qui sont chargés.

L'argument option peut avoir l'une des valeurs suivantes :

mod

Dresse la liste des modules chargés dans le processus.

cl

Dresse la liste des classes chargées dans le processus.

fu

Dresse la liste des fonctions globales pour chaque module chargé dans le processus.

m[ode] [[mode name {0|1} ]

Définit et affiche les modes du débogueur pour différentes fonctionnalités de ce dernier. Pour définir une valeur, spécifiez le mode dans l'argument mode name et 1 pour activer ce mode ou 0 pour le désactiver. Si vous ne spécifiez aucun argument, l'outil affiche la liste des modes en cours. Les modes sont enregistrés dans la base de registres Windows entre chaque exécution de Cordbg.exe. Pour plus d'informations, consultez le tableau des arguments de mode du débogueur.

newo[bj] class

Crée un nouvel objet à l'aide du thread en cours. L'outil enregistre le nouvel objet dans la variable $result et peut l'utiliser pour des évaluations ultérieures.

newobjnc class

Crée un nouvel objet à l'aide du thread en cours, sans exécuter de constructeur sur l'objet. Le nouvel objet est initialisé à la valeur zéro. L'outil enregistre le nouvel objet dans la variable $result et peut l'utiliser pour des évaluations ultérieures.

news[tr] string

Crée une nouvelle chaîne (string) à l'aide du thread en cours. L'outil enregistre le nouvel objet dans la variable $result et peut l'utiliser pour des évaluations ultérieures.

n[ext] [count]

Avance jusqu'à la ligne de source suivante du programme en effectuant un pas à pas principal des appels de fonction. Si vous ne spécifiez aucun argument, l'outil avance d'une seule ligne de source. Si vous spécifiez un argument, l'outil avance du nombre de lignes spécifié. Vous pouvez utiliser la commande so de la même manière que vous utilisez next.

ns[ingle] [count]

Avance d'une ou plusieurs instructions dans le programme en ignorant les appels de fonction. Si vous ne spécifiez aucun argument, l'outil avance d'une seule instruction. Si vous spécifiez un argument count, l'outil avance du nombre d'instructions spécifié.

o[ut] [count]

Avance dans le programme jusqu'à la sortie de la fonction en cours. Si vous ne spécifiez aucun argument, l'outil effectue un pas à pas sortant une seule fois pour la fonction en cours. Si vous spécifiez un argument, l'outil effectue le pas à pas sortant le nombre de fois spécifié.

pa[th] [new path]

Affiche ou définit le chemin d'accès utilisé pour rechercher les fichiers sources et les symboles de débogage. Si vous ne spécifiez aucun argument, l'outil affiche le chemin d'accès en cours. Si vous spécifiez un argument newpath, celui-ci devient le nouveau chemin d'accès utilisé pour rechercher les fichiers sources et les symboles de débogage. Ce chemin d'accès persiste d'une session à l'autre dans le Registre de Windows.

p[rint] [variable name]

Affiche une ou plusieurs variables locales avec leurs valeurs. Si vous ne spécifiez aucun argument, l'outil affiche toutes les variables locales et leurs valeurs. Si vous spécifiez un argument, l'outil affiche la valeur de la variable locale spécifiée uniquement. Pour plus d'informations, consultez Utilisation de la commande print dans la section « Exemples ».

pro[cessenum]

Énumère tous les processus managés et les domaines d'application dans chacun d'eux.

q[uit]

Voir exit.

ref[reshsource] [source file]

Recharge le code source pour un fichier source donné. Le fichier source à recharger doit faire partie du programme en cours d'exécution. Après avoir défini le chemin d'accès des fichiers sources à l'aide de la commande path, vous pouvez utiliser la commande refreshsource pour charger le code source manquant.

regd[efault] [force]

Définit Cordbg.exe comme débogueur juste-à-temps (JIT, Just-In-Time) par défaut. Cette commande ne fait rien si un autre débogueur est déjà inscrit. Utilisez l'argument force pour remplacer le débogueur JIT inscrit.

reg[isters]

Affiche le contenu des registres pour le thread en cours.

rem[ove] [breakpoint id, ]

Voir delete.

re[sume] [~] [tid]

Reprend le thread spécifié par l'argument tid lorsque le débogueur continue. Si vous utilisez la syntaxe ~, l'outil reprend tous les threads à l'exception du thread spécifié. Si vous ne spécifiez aucun argument, la commande n'a aucun effet.

r[un] [executable [args]]

Supprime le processus en cours (le cas échéant) et démarre un nouveau processus. Si vous ne spécifiez pas d'argument executable, la commande exécute le programme précédemment lancé avec la commande run. Si vous spécifiez un argument executable, l'outil exécute le programme spécifié en utilisant les arguments args facultatifs éventuellement fournis. Si Cordbg.exe ignore les événements de chargement de classe, de chargement de module et de démarrage de thread (option par défaut), le programme s'arrête sur la première instruction exécutable du thread principal.

set variable value

Affecte à la variable spécifiée la valeur value spécifiée. Cette valeur peut être un littéral ou une autre variable. Pour plus d'informations, consultez Utilisation de la commande set dans la section « Exemples ».

setipline number

Définit le numéro de ligne (line number) spécifié de l'instruction suivante à exécuter.

sh[ow] [count]

Affiche des lignes du code source. Si vous ne spécifiez aucun argument, l'outil affiche les cinq lignes de code source situées avant et après la ligne de code source en cours. Si vous spécifiez un argument, l'outil affiche le nombre spécifié de lignes avant et après la ligne active. La dernière valeur de count spécifiée devient l'argument par défaut pour la session en cours.

si [<count>]

Voir step.

so [<count>]

Voir next.

ss[ingle] [count]

Avance d'une ou plusieurs instructions dans le programme en effectuant un pas à pas détaillé des appels de fonction. Si vous ne spécifiez aucun argument, l'outil effectue le pas à pas détaillé d'une seule instruction. Si vous spécifiez un argument, l'outil avance du nombre de pas spécifié.

s[tep] [count]

Avance jusqu'à la ligne de code source suivante du programme en effectuant un pas à pas détaillé des appels de fonction. Si vous ne spécifiez aucun argument, le programme avance jusqu'à la ligne suivante. Si vous spécifiez un argument, le programme avance du nombre de lignes spécifié. Vous pouvez utiliser la commande si ou la commande in de la même manière que vous utilisez step.

stop [[file:] line number] |

[[class::] function[:offset]] |

[=0xaddress]

Voir break.

su[spend] [~] [tid]

Interrompt le thread spécifié par l'argument tid lorsque le débogueur continue. Si vous utilisez la syntaxe ~, l'outil interrompt tous les threads à l'exception du thread spécifié. Si vous ne spécifiez aucun argument, la commande n'a aucun effet.

t[hreads] [tid]

Affiche une liste de threads ou définit le thread en cours. Si vous ne spécifiez aucun argument, l'outil affiche la liste de tous les threads encore actifs qui ont exécuté du code managé. Si vous spécifiez un argument, l'outil définit le thread spécifié comme thread en cours.

up [count]

Monte le pointeur de frame de pile dans la pile vers les frames qui ont appelé le frame en cours à des fins d'inspection. Si vous ne spécifiez aucun argument, le pointeur de frame de pile monte d'un frame. Si vous spécifiez un argument, le pointeur de frame de pile monte du nombre de frames spécifié dans la pile. Si des informations de niveau source sont disponibles, l'outil affiche la ligne source associée au frame.

w[here] [count]

Affiche une trace de la pile pour le thread en cours. Si vous ne spécifiez aucun argument, l'outil affiche une trace complète de la pile. Si vous spécifiez un argument, l'outil affiche le nombre spécifié de frames de pile.

wr[itememory] address count byte, ...

Écrit les octets spécifiés dans le processus cible. L'argument address spécifie l'emplacement où les octets doivent être écrits. L'argument count spécifie le nombre d'octets à écrire. Les arguments byte spécifient ce qui doit être écrit dans le processus. Si le nombre d'octets de la liste est inférieur à l'argument count, l'outil recommence à copier à partir du début de la liste. Si le nombre d'octets de la liste est supérieur à l'argument count, l'outil ignore les octets en trop.

wt

Effectue le pas à pas des instructions natives de l'application en commençant par l'instruction en cours et en imprimant l'arborescence des appels au fur et à mesure. L'outil imprime le nombre d'instructions natives exécutées dans chaque fonction avec la trace des appels. Le traçage s'arrête lorsque l'outil atteint l'instruction return correspondant à la fonction dans laquelle la commande a été exécutée à l'origine. À la fin de la trace, l'outil imprime le nombre total d'instructions exécutées. Cette commande reproduit la commande wt du débogueur symbolique NT et vous pouvez l'utiliser pour effectuer une analyse des performances de base. Pour l'instant, l'outil comptabilise uniquement le code managé.

xmodulename !string_to_look_for

Affiche les symboles du module spécifié qui correspondent au modèle spécifié par l'argument string_to_look_for. Vous pouvez utiliser un astérisque (*) dans l'argument string_to_look_for pour indiquer à l'outil de faire correspondre n'importe quel caractère. L'outil ignore tous les caractères situés après l'astérisque.

? [command ...]

Voir help.

>filename

Écrit toutes les commandes exécutées dans le fichier spécifié par filename. Si vous ne spécifiez aucun argument filename, la commande cesse d'écrire des commandes dans le fichier.

<filename

Lit et exécute les commandes du fichier spécifié par filename.

Remarque :

Les commandes de Cordbg.exe respectent la casse. Par ailleurs, plusieurs commandes ont des synonymes que vous pouvez utiliser indifféremment pour produire le même résultat. Par exemple, les commandes break et stop permettent de définir des points d'arrêt.

Arguments spécifiant le mode

Vous pouvez indiquer des arguments spécifiant le mode en utilisant le moins de caractères possible, de manière à rendre le mode unique. Par exemple, "mode m 1" équivaut à "mode moduleloads 1".

Argument

Description

AppDomainLoads

Affiche les événements de chargement d'assembly et de domaine d'application.

ClassLoads

Affiche les événements de chargement de classe.

DumpMemoryInBytes

Affiche le contenu de la mémoire en octets ou DWORDS.

EmbededCLR

Définit le débogueur sur des applications .NET Compact Framework cible s'exécutant sur des Smart Device. Ce paramètre admet les valeurs 1 (pour l'activer) et 0 (pour le désactiver).

EnhanceDiag

Affiche des informations de diagnostic étendues.

HexDisplay

Affiche les nombres au format hexadécimal ou décimal.

ILNatPrint

Affiche les offsets en langage MSIL (Microsoft intermediate language) ou en langage voisin du langage natif, ou les deux.

ISAll

Parcourt tous les intercepteurs.

ISClinit

Parcourt les initialiseurs de classe.

ISExceptF

Parcourt les filtres d'exception.

ISInt

Parcourt les intercepteurs d'utilisateur.

ISPolicy

Parcourt les stratégies de contexte.

ISSec

Parcourt les intercepteurs de sécurité.

JitOptimizations

Spécifie si la compilation JIT génère du code plus facile à déboguer.

LoggingMessages

Affiche les messages du journal du code managé.

ModuleLoads

Affiche les événements de chargement de module.

SeparateConsole

Indique si le processus en cours de débogage a sa propre console.

ShowArgs

Affiche les arguments des méthodes dans la trace de pile.

ShowModules

Affiche les noms des modules dans la trace de pile.

ShowStaticsOnPrint

Affiche des champs statiques pour les objets.

ShowSuperClassOnPrint

Affiche le contenu de la classe de base des objets.

USAll

Parcourt tous les emplacements des points d'arrêt non mappés.

USEpi

Parcourt les épilogues des méthodes.

USPro

Parcourt les prologues des méthodes.

USUnmanaged

Parcourt le code non managé.

Notes

Vous devez compiler l'application à déboguer en utilisant des indicateurs spécifiques au compilateur, ce qui force ce dernier à générer des symboles de débogage. Pour plus d'informations sur ces indicateurs, consultez la documentation de votre compilateur. Il est toujours possible de déboguer des applications optimisées, mais il manquera certaines informations de débogage. Par exemple, un grand nombre de variables locales ne seront pas visibles et certaines lignes sources seront incorrectes.

Après avoir compilé l'application, tapez cordbg à l'invite de commande pour démarrer une session de débogage, comme le montre l'exemple suivant.

D:\Program Files\FrameworkSDK\Bin>cordbg
Microsoft (R) Common Language Runtime Test Debugger Shell. Version 2000.14.2100.0, Copyright (c) Microsoft Corp. 1998-2000
(cordbg)

L'invite (cordbg) indique que vous vous trouvez dans le débogueur.

Une fois que vous vous trouvez dans le débogueur, utilisez les commandes et les arguments appropriés pour appeler la fonctionnalité requise.

Lorsque vous démarrez une session de débogage à partir de la ligne de commande, vous pouvez également indiquer le nom de l'application à déboguer, les arguments du programme et des arguments facultatifs. Les arguments facultatifs de Cordbg.exe sont identiques aux commandes que vous utilisez à partir de l'outil Cordbg.exe, mais vous devez les faire précéder d'un point d'exclamation (!). Vous pouvez utiliser le point d'exclamation comme littéral dans une chaîne en le faisant précéder d'une barre oblique inverse (\). C'est nécessaire pour la commande x.

Si l'argument numérique d'une commande commence par le préfixe 0x, Cordbg.exe suppose que son format est hexadécimal. Sinon, l'outil considère que l'argument est au format décimal.

La plupart des commandes de Cordbg.exe peuvent être précédées d'un astérisque (*), forçant l'exécution de la commande pour chaque thread managé du processus. La commande est exécutée dans le contexte de chaque thread. La commande w[here] est particulièrement utile lorsqu'elle est précédée d'un astérisque. Par exemple, *w force l'impression de la trace de la pile de chaque thread managé.

Pour plus d'informations sur les services de débogage du runtime, consultez la spécification Enabling Profiling and Debugging. Par ailleurs, les développeurs d'outils ont intérêt à consulter les spécifications Debug Overview et Debug Reference qui se trouvent dans le dossier Tool Developer's Guide fourni avec le Kit de développement logiciel (SDK) Windows.

Exemples

Démarrage d'une session Cordbg.exe

La commande suivante démarre une session Cordbg.exe pour l'application MyApplication.exe avec les arguments de programme a et 2 et les commandes facultatives suivantes : définir un point d'arrêt dans MyApplication.cs à la ligne 42, continuer l'application, afficher les symboles dans MyApplication.exe qui correspondent à la chaîne 'SomeString'.

cordbg MyApplication.exe a 2 !b MyApplication.cs:42 !g !x MyApplication.exe\!SomeString

Exécution d'un programme exécutable à l'intérieur d'une session Cordbg

La commande suivante, entrée à partir d'une session de Cordbg.exe (à l'invite (cordbg) ) exécute l'exécutable MyApplication.exe avec les arguments de programme a et 2.

run MyApplication.exe a 2

Utilisation de la commande print

Les commandes suivantes montrent l'utilisation de la notation à points avec la commande print pour spécifier des variables dans des objets.

print obj.var1
print obj1.obj2.var1

Si une classe étend une autre classe, la commande print affiche à la fois les champs de la classe spécifiée et ceux de la classe de base. Par exemple, si la classe m1 comprend les champs a, b et c et que la classe m2 qui étend m1 comprend les champs d, e et f, une instance myInstance de m2 s'affiche comme suit.

myInstance = <addr> <m2>
      a = 1
      b = 2
      c = 3
      m2::d = 4
      m2::e = 5
      m2::f = 6

Vous pouvez spécifier des variables de classe statiques en faisant précéder le nom de la variable du nom de classe, de la manière suivante :

print MyClass::StaticVar1
print System::Boolean::True

Les index de tableau doivent être des expressions simples. Les index de tableau suivants peuvent être utilisés avec la commande print.

print arr[1]
print arr[i]
print arr1[arr2[1]]
print md[1][5][myObject.a]

Les index de tableau suivants ne peuvent pas être utilisés avec la commande print, car il ne s'agit pas d'une expression simple.

print arr[i + 1]
print arr[i + 2]

Utilisation de la commande set

Lorsque vous utilisez la commande set, la valeur que vous assignez à la variable spécifiée peut être un littéral ou une autre variable. Les commandes set suivantes sont valides.

set int1 0x2a
set float1 3.1415
set char1 'a'
set bool1 true
set obj1 0x12345678
set obj1 obj2
set obj1.m_length[obj1.m_height] obj3.m_length[2]

Voir aussi

Référence

Outils du .NET Framework

Invite de commandes du Kit de développement SDK