Ich habe einen Auszug eines Windows-Dienstes, den ich erstellt habe. Die Ausnahme ist, dass mein Code eine Datei nicht verschieben kann (aus irgendeinem Grund). Nun, in meinem Code gibt es eine Reihe von Stellen, an denen ich Dateien im Dateisystem verschiebe. Also, mit Windbg, ich versuche, den Code zu sehen, wo die Ausnahme auftritt.
hier ist mein !clrstack dump..
0:016> !clrstack -p
OS Thread Id: 0xdf8 (16)
Child-SP RetAddr Call Site
0000000019edea70 0000064278a15e4f System.IO.__Error.WinIOError(Int32, System.String)
PARAMETERS:
errorCode = <no data>
maybeFullPath = <no data>
0000000019edead0 0000064280181ce5 System.IO.File.Move(System.String, System.String)
PARAMETERS:
sourceFileName = <no data>
destFileName = <no data>
0000000019edeb50 0000064280196532 MyClass.Foo.DoSomeStuffInHere(System.String)
PARAMETERS:
this = 0x0000000000c30aa8
filePathAndName = 0x0000000000d1aad0
das hilft sehr...
0:016> !do 0x0000000000d1aad0
Name: System.String
MethodTable: 00000642784365e8
EEClass: 000006427803e4f0
Size: 88(0x58) bytes
(C:\WINDOWS\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)
String: C:\BlahBlahFolder\FooFolder\4469.jpg
Fields:
-snipped-
Also habe ich herausgefunden, die Datei, die nicht verschoben werden konnte. kewl. Aber ich möchte nur den Code in dieser Methode MyClass.Foo.DoSomeStuffInHere(System.String) sehen, die File.Move(..) aufruft. Diese Methode hat viele File.Move .. so könnte ich Try / Catches / Debug / Trace-Informationen setzen .. aber ich hoffe, effizienter zu sein, indem Sie Windbg verwenden, um dieses Problem zu finden.
Haben Sie eine Idee?