2010-09-28 3 views
1

Comment puis-je déterminer si la variable locale est un type de valeur ou un type de référence?! Variables locales ClrStack - s'agit-il d'un type de valeur ou d'un type de référence

0: 000> CLRStack -a
OS TID: 0xf74 (0)
Appel enfant-SP RetAddr Site
000000000023e9c0 000007fef6b32012 ConsoleApplication2.Program.Main (System.String [])
PARAMETRES:
args = 0x00000000028f3c70
:
LOCALS 0x000000000023e9e0 = 0x0000000000000000
0x000000000023e9e8 = 0x00000000028f3c90
0x000000000023e9f0 = 0x00000000000 493e0

Répondre

2

La méthode la plus simple consiste à utiliser l'extension sosex. La commande !mk -l peut vous donner l'adresse mémoire ainsi que le type. Voici un exemple où s est un struct et c est la classe

0a:M 002aec64 004700f3 ConsoleApplication1.Program.Main(System.String[])(+0x27 IL)(+0x83 Native) [C:\Users\nsrinivasan\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs, @ 90,17] 
    [L0]:s:VALTYPE (MT=001a3884, ADDR=002aec70) (MyStruct) 
    [L1]:c:0x0276c098 (MyClass) 

également sosex a des choses cool qui ne dispose pas sos.

Questions connexes