! clrstack المتغيرات المحلية - هل هو نوع القيمة أو نوع المرجع
سؤال
كيف يمكنني تحديد ما إذا كان المتغير المحلي هو نوع قيمة أم نوع مرجعي؟
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.
لا تنتمي إلى StackOverflow