FileNotFoundException Windows debugging

System.IO.FileNotFoundException 보통 Fusion Log 통해서 File 존재하지 않는 다는 Exception 발생하는 Check하는 것이 보통입니다. 이때, fuslogvw.exe (Assembly Binding Log Viewer (Fuslogvw.exe) - http://msdn2.microsoft.com/en-us/library/e74a18c4(VS.80).aspx) 라는 Tool 이용하여 Log 확인해 보는 것이 보통인데, CLR Exception 메모리 덤프 파일에서도 해당 오류의 Fusion log 확인할 있습니다.

 

0:000> kbL

ChildEBP RetAddr  Args to Child             

0012efd0 79f55b05 e0434f4d 00000001 00000001 kernel32!RaiseException+0x53

0012f030 79f559f8 01700b3c 00000000 00000000 mscorwks!RaiseTheExceptionInternalOnly+0x226

0012f068 7a2cfd73 0012f124 01146088 a3c2da46 mscorwks!UnwindAndContinueRethrowHelperAfterCatch+0x70

0012f1a0 79394bbb 00000000 00000001 0012f1fc mscorwks!AssemblyNative::Load+0x2dc

0012f1f0 793f5506 00000000 00000000 00000000 mscorlib_ni!System.Reflection.Assembly.LoadWithPartialNameInternal(System.String, System.Security.Policy.Evidence, System.Threading.StackCrawlMark ByRef)+0x63

0012f2b0 638f5fc7 00000000 00000000 00000000 mscorlib_ni!System.Reflection.Assembly.LoadWithPartialName(System.String, System.Security.Policy.Evidence)+0x16

0012f2b0 6395ca1a 00000000 00000000 00000000 System_Xml_ni!System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly(System.Type, System.String, System.Xml.Serialization.XmlSerializerImplementation ByRef)+0x12f

0012f340 6991926e 00000000 00000000 00000000 System_Xml_ni!System.Xml.Serialization.XmlSerializer.FromMappings(System.Xml.Serialization.XmlMapping[], System.Type)+0x46

0012f340 6991995e 00000000 00000000 00000000 System_Web_Services_ni!System.Web.Services.Protocols.SoapClientType..ctor(System.Type)+0x14e

0012f340 04494bb5 00000000 00000000 00000000 System_Web_Services_ni!System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()+0xfe

. . .

 

0:000> .loadby sos mscorwks ß-- SOS “Son Of Strike” 약자입니다 ^^

 

0:000> !do 01700b3c

Name: System.IO.FileNotFoundException

MethodTable: 79176674

EEClass: 79210f80

Size: 84(0x54) bytes

 (C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)

Fields:

      MT    Field   Offset                 Type VT     Attr    Value Name

790f9244  40000b5        4        System.String  0 instance 00000000 _className

79107d4c  40000b6        8 ...ection.MethodBase  0 instance 00000000 _exceptionMethod

790f9244  40000b7        c        System.String  0 instance 00000000 _exceptionMethodString

790f9244  40000b8       10        System.String  0 instance 01700dbc _message

79112734  40000b9       14 ...tions.IDictionary  0 instance 00000000 _data

790f984c  40000ba       18     System.Exception  0 instance 00000000 _innerException

790f9244  40000bb       1c        System.String  0 instance 00000000 _helpURL

790f8a7c  40000bc       20        System.Object  0 instance 00000000 _stackTrace

790f9244  40000bd       24        System.String  0 instance 00000000 _stackTraceString

790f9244  40000be       28        System.String  0 instance 00000000 _remoteStackTraceString

790fdb60  40000bf       34         System.Int32  0 instance        0 _remoteStackIndex

790f8a7c  40000c0       2c        System.Object  0 instance 00000000 _dynamicMethods

790fdb60  40000c1       38         System.Int32  0 instance -2147024894 _HResult

790f9244  40000c2       30        System.String  0 instance 00000000 _source

790fcfa4  40000c3       3c        System.IntPtr  0 instance        0 _xptrs

790fdb60  40000c4       40         System.Int32  0 instance -532459699 _xcode

790f9244  4001b6e       44        System.String  0 instance 00000000 _maybeFullPath

790f9244  4001b8a       48        System.String  0 instance 0170049c _fileName

790f9244  4001b8b       4c        System.String  0 instance 017004d8 _fusionLog


다음이 Fusion Log 입니다.
 

0:000> !do 017004d8

Name: System.String

MethodTable: 790f9244

EEClass: 790f91a4

Size: 1634(0x662) bytes

 (C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)

String: === 미리 바인딩된 상태 정보 ===

로그: 사용자 = Test\user

로그: DisplayName = App.XmlSerializers

 (Partial)

로그: Appbase = file:///C:/Documents and Settings/user/Local Settings/Apps/2.0/2LM8KNOY.LO3/EW4G9LGP.5QK/app_88e09f542d9e8639_0001.0000_48ecdf987ebc8443/

로그: 초기 PrivatePath = NULL

호출 어셈블리: System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.

===

로그: 바인딩은 default 로드 컨텍스트에서 시작됩니다.

로그: 응용 프로그램 구성 파일 C:\Documents and Settings\user\Local Settings\Apps\2.0\2LM8KNOY.LO3\EW4G9LGP.5QK\app_88e09f542d9e8639_0001.0000_48ecdf987ebc8443\App.exe.config() 사용합니다.

로그: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config에서 컴퓨터 구성 파일을 사용합니다.

로그: 참조에 정책이 지금 적용되지 않습니다(전용, 사용자 지정, 부분, 위치 기반 어셈블리 바인딩).

로그: 동일한 바인딩이 이미 있어 hr = 0x80070002() 함께 오류가 발생했습니다.

 

Fields:

      MT    Field   Offset                 Type VT     Attr    Value Name

790fdb60  4000096        4         System.Int32  0 instance      809 m_arrayLength

790fdb60  4000097        8         System.Int32  0 instance      808 m_stringLength

790fad38  4000098        c          System.Char  0 instance       3d m_firstChar

790f9244  4000099       10        System.String  0   shared   static Empty

    >> Domain:Value  0015ed48:790d57b4 <<

79122994  400009a       14        System.Char[]  0   shared   static WhitespaceChars

    >> Domain:Value  0015ed48:01421290 <<

 


핑백

덧글

댓글 입력 영역