! clrstack المتغيرات المحلية - هل هو نوع القيمة أو نوع المرجع

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

  •  26-09-2019
  •  | 
  •  

سؤال

كيف يمكنني تحديد ما إذا كان المتغير المحلي هو نوع قيمة أم نوع مرجعي؟

0: 000>! clrstack -a
معرف موضوع OS: 0xF74 (0)
موقع استدعاء Child-SP
00000000000023E9C0 000007FEF6B32012 CONSLEAPPLICATION2.Program.Main (System.String [])
المعلمات:
args = 0x00000000028f3c70
السكان المحليين:
0x000000000023E9E0 = 0x00000000000000
0x000000000023E9E8 = 0x00000000028F3C90
0x000000000023e9f0 = 0x00000000000493e0

هل كانت مفيدة؟

المحلول

أسهل طريقة للتعرف هي استخدام سوسيكس تمديد. الامر !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)

أيضا سوسكس لديه بعض الأشياء الرائعة التي تفتقر إليها SOS.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top