Ich versuche, eine laufende ASP.NET App mit WinDbg zu debuggen. Was ich brauche, ist der Wert eines Arguments, das an eine Methode übergeben wird. So bin ich auf einem Haltepunkt in diesem Verfahren und von !clrstack -p
ich dieses:Windgb mit SOS zeigt keine Struktur Feldwerte
PARAMETERS:
this (0x00000004af4fdc10) = 0x000001a2b8a06e68
ideaForum (0x00000004af4fdc18) = 0x000001a2b8b11bc8
page (0x00000004af4fdc20) = 0x0000000300000001
Ich bin interessiert an der „Seite“ Argument, das vom Typ int?
(System.Nullable<System.Int32>
) so erste finde ich die MT-Adresse für System.Nullable`1[[System.Int32, mscorlib]]
, die zufällig 00007ffa263c7ae0 ist. Dann !dumpvc 00007ffa263c7ae0 0000000300000001
Ich nenne und hier ist das, was ich bekommen:
Name: System.Nullable`1[[System.Int32, mscorlib]]
MethodTable: 00007ffa263c7ae0
EEClass: 00007ffa25dc6580
Size: 24(0x18) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
MT Field Offset Type VT Attr Value Name
00007ffa263da2e0 4000707 0 System.Boolean 1 instance hasValue
00007ffa263baf60 4000708 4 System.Int32 1 instance value
Wie Sie sehen können, ich tue, was in Windbg with SOS, How to dump a c# struct als Antwort markiert wurde, aber es keine Werte für die Felder anzeigen lassen, welche ist das, was ich brauche. Was muss ich noch tun, um zu den Werten zu gelangen? Danke.
EDIT: Es scheint, dass ich die falsche Adresse für das Argument schließlich verwendet habe. Die in Parens nach dem Argumentnamen ist die richtige, also hätte ich 0x00000004af4fdc20
verwenden sollen. Damit funktioniert! Dumpvc wie erwartet. Sosex ist einfacher zu benutzen, weil es nur den Argumentnamen benötigt, um den Job zu erledigen
Danke Steve, '' '! Sosex.mdt Seite''' hat den Trick gemacht. Ich liebe die Sex-Hilfeseiten übrigens! – actionresult
Ich bin froh, dass es dir nützlich ist. –