作成したWindowsサービスのダンプがあります。例外は、私のコードがファイルを移動できないことです(何らかの理由で)。さて、私のコードには、ファイルシステム内でファイルを移動する場所がいくつかあります。したがって、Windbgを使用して、例外が発生するコードを確認しようとしています。
これが私の!clrstackダンプです。
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
今、これは大いに役立ちます...
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-
だから私は移動に失敗したファイルを見つけました。ケウル。しかし、File.Move(..)を呼び出すこのメソッドMyClass.Foo.DoSomeStuffInHere(System.String)のコードを見たいだけです。そのメソッドにはたくさんのFile.Move..があるので、try / catchs / debug / trace information ..を置くことができますが、Windbgを使用してこの問題を見つけることで、より効率的になることを望んでいます。
何かご意見は?