! CLRSTACK Локальные переменные - это типичный тип или тип ссылки

StackOverflow https://stackoverflow.com/questions/3814406

  •  26-09-2019
  •  | 
  •  

Вопрос

Как я могу определить, является ли локальная переменная типа или тип ссылочного типа?

0: 000>! ClrStack -a
ID Thread os: 0xF74 (0)
Child-Sp RetAddr звонок сайта
000000000023E9C0 000007FEF6B32012 Консолиаположение2.program.main (System.String [])
Параметры:
args = 0x00000000028f3c70.
Местные жители:
0x000000000023E9E0 = 0x000000000000000000.
0x000000000023E9E8 = 0x00000000028F3C90.
0x000000000023E9F0 = 0x00000000000493e0.

Это было полезно?

Решение

Самый простой способ идентифицировать Sosex. расширение. Команда !mk -l может дать вам адрес памяти, а также тип. Вот пример, где S - структура, а C является классом

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)

Также Sosex имеет несколько классных вещей, которые не хватает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top