성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> DeveloperToolManager 프로그램이 다른 PC에서 오류가 발생했습니다. ClickOnce 배포인데 실행하는 시점부터 (윈도우가 보이기도 전에) 오류가 발생해서 DW20.exe가 뜨면서 CPU 100%를 열심히 치는 현상이 발생했습니다. "Attach to process..." 할 여유조차 없는 시간이었습니다.<br /> <br /> 이벤트 로그에 남는 오류는 다음과 같습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > Event Type: Error Event Source: .NET Runtime 2.0 Error Reporting Event Category: None Event ID: 5000 Date: 2009-02-02 Time: 오후 1:56:37 User: N/A Computer: TestPC <b style='color: Blue;'>Description: EventType clr20r3, P1 developertoolmanager.exe, P2 1.0.0.1, P3 497f20d0, P4 presentationframework, P5 3.0.0.0, P6 4938d608, P7 625a, P8 e1, P9 system.windows.markup.xamlparse, P10 NIL. </b> For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. Data: 0000: 63 00 6c 00 72 00 32 00 c.l.r.2. 0008: 30 00 72 00 33 00 2c 00 0.r.3.,. ...[중간 생략]... 0108: 70 00 61 00 72 00 73 00 p.a.r.s. 0110: 65 00 20 00 4e 00 49 00 e. .N.I. 0118: 4c 00 0d 00 0a 00 L..... </pre> <br /> Description에 나오는 내용들은 예전에 설명해 드린 대로 "Watson Bucket" 정보입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > Watson Bucket 정보를 이용한 CLR 응용 프로그램 예외 분석 ; <a target='_tab' href='/2/0/595'>http://www.sysnet.pe.kr/2/0/595</a> </pre> <br /> 그런데, 이걸 어쩝니까? 위의 설명대로라면 "presentationframework" 모듈에서 "system.windows.markup.xamlparse" 예외가 발생한 것인데, 이 경우에는 아래에서 설명해 드린 대로 XamlParseException 자체가 그다지 문제 해결에 도움이 되지 않습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > WPF - XamlParseException 대응 방법 ; <a target='_tab' href='/2/0/622'>http://www.sysnet.pe.kr/2/0/622</a> </pre> <br /> 사실, 이런 경우에 가장 빨리 문제를 파악할 수 있는 방법은 해당 컴퓨터에 Visual Studio를 설치하고 다음과 같이 레지스트리 키를 등록해서 프로그램 시작 시부터 디버거를 붙이고 "First-chance exception"이 발생하기를 기다리면 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > HKEY_LOCAL_MACHINE - SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\DeveloperToolManager.exe - debugger(REG_SZ): vsjitdebugger </pre> <br /> 하지만, 언제나 대상 컴퓨터에 Visual Studio가 설치되어 있다고는 장담할 수 없기 때문에 그런 상황을 가정해서 windbg.exe를 만져보기로 했습니다. 정말이지 windbg는 만지고 싶지 않지만 ^^; <br /> <br /> 우선, 레지스트리 키부터 설정하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > HKEY_LOCAL_MACHINE - SOFTWARE\Microsoft\Windows NT\CurrentVersion\<b style='color: Blue;'>Image File Execution Options\DeveloperToolManager.exe</b> - <b style='color: Blue;'>debugger(REG_SZ): C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe</b> </pre> <br /> 다음의 경로를 통해 ClickOnce로 배포된 응용 프로그램을 실행했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > http://www.sysnet.pe.kr/Tools/DeveloperToolManager.application </pre> <br /> windbg.exe가 뜨고, 응용 프로그램이 곧바로 멈춥니다. "g" 키를 눌러서 실행을 계속하니 아래와 같은 예외에서 멈추었습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > ModLoad: 77530000 775c7000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_5.82.3790.3959_x-ww_78FCF8D0\COMCTL32.dll ModLoad: 60340000 60348000 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\culture.dll ModLoad: 6a320000 6a4db000 C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\System.Deployment\a6b58624486714fa71e5e35186850ff0\System.Deployment.ni.dll (6f0.870): C++ EH exception - code e06d7363 (first chance) (6f0.870): CLR exception - code e0434f4d (first chance) (6f0.870): C++ EH exception - code e06d7363 (first chance) (6f0.870): CLR exception - code e0434f4d (first chance) (6f0.870): CLR exception - code e0434f4d (first chance) (6f0.870): CLR exception - code e0434f4d (first chance) (6f0.870): CLR exception - code e0434f4d (!!! second chance !!!) eax=0012e6a4 ebx=e0434f4d ecx=00000000 edx=00000028 esi=0012e730 edi=001926c0 eip=77e4bee7 esp=0012e6a0 ebp=0012e6f4 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\KERNEL32.dll - <b style='color: Blue;'>KERNEL32!RaiseException+0x3c:</b> 77e4bee7 5e pop esi 0:000><b style='color: Blue;'>.loadby sos mscorwks</b> </pre> <br /> 곧바로 sos를 로드하고, 아래와 같이 예외를 출력하도록 했습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > 0:000> <b style='color: Blue;'>!printexception</b> Exception object: 01346fac <b style='color: Blue;'>Exception type: System.Windows.Markup.XamlParseException</b> Message: Cannot create instance of 'MainWindow' defined in assembly 'DeveloperToolManager, Version=1.0.0.1, Culture=neutral, PublicKeyToken=1591541994228f36'. Exception has been thrown by the target of an invocation. Error in markup file 'MainWindow.xaml' Line 1 Position 9. <b style='color: Blue;'>InnerException: System.Reflection.TargetInvocationException, use !PrintException 01331188 to see more </b>StackTrace (generated): SP IP Function 0012E69C 56462C67 PresentationFramework_ni!System.Windows.Markup.XamlParseException.ThrowException(System.String, System.Exception, Int32, Int32, System.Uri, System.Windows.Markup.XamlObjectIds, System.Windows.Markup.XamlObjectIds, System.Type)+0x1bf ... [중간 생략] ... 0012F420 578430CC WindowsBase_ni!System.Windows.Threading.Dispatcher.Run()+0x4c 0012F42C 55BED47E PresentationFramework_ni!System.Windows.Application.RunDispatcher(System.Object)+0x1e 0012F438 55BEC77F PresentationFramework_ni!System.Windows.Application.RunInternal(System.Windows.Window)+0x6f 0012F45C 55BD3A96 PresentationFramework_ni!System.Windows.Application.Run(System.Windows.Window)+0x26 0012F46C 55BD3A59 PresentationFramework_ni!System.Windows.Application.Run()+0x19 0012F478 034C00BC DeveloperToolManager!DeveloperToolManager.App.Main()+0x4c StackTraceString: <none> HResult: 80131501 There are nested exceptions on this thread. Run with -nested for details </pre> <br /> 이미, XamlParseException이라는 것도 알고 있으니 넘어가고. 그런데 중간에 보니 InnerException에서 친절하게도 다음 할 일을 알려주고 있습니다. 어쩌겠습니까? 저 같은 초보자는 windbg 님이 하라는 대로 할 수밖에. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > 0:000> <b style='color: Blue;'>!printexception 01331188</b> *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll - Exception object: 01331188 Exception type: System.Reflection.TargetInvocationException Message: Exception has been thrown by the target of an invocation. <b style='color: Blue;'>InnerException: System.MissingMethodException, use !PrintException 01325654 to see more</b> StackTrace (generated): SP IP Function 0012E704 792F0047 mscorlib_ni!System.RuntimeType.CreateInstanceSlow(Boolean, Boolean)+0x57 0012E734 792EFFB7 mscorlib_ni!System.RuntimeType.CreateInstanceImpl(Boolean, Boolean, Boolean)+0xe7 0012E76C 792F01B4 mscorlib_ni!System.Activator.CreateInstance(System.Type, Boolean)+0x44 0012E77C 55BFCBC1 PresentationFramework_ni!System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(System.Type, Int16, Boolean)+0x221 StackTraceString: <none> HResult: 80131604 </pre> <br /> 잉... 이번에도 InnerException이 있네요. 계속 가보기로 하겠습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > 0:000> <b style='color: Blue;'>!printexception 01325654</b> Exception object: 01325654 Exception type: System.MissingMethodException <b style='color: Blue;'>Message: Method not found: 'System.String Tools.Resources.Properties.Resources.get_ApplicationNameVersion()'. </b>InnerException: <none> StackTrace (generated): SP IP Function StackTraceString: <none> HResult: 80131513 </pre> <br /> 오호... WPF 응용 프로그램이 참조하고 있는 Tools.Resources.dll 파일에 정의되어 있는 ApplicationNameVersion 정적 멤버 변수를 못 찾고 있는 것입니다.<br /> <br /> 일단, 이해할 수 없는 현상이군요. 혹시나 싶어, 임시 폴더에 있는 내용들을 모두 정리해보았습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > C:\Documents and Settings\[로그인 계정]\Local Settings\Apps\2.0\...[배포 폴더] </pre> <br /> 음... ^^; 다시 응용 프로그램을 "<a target='_tab' href='/Tools/DeveloperToolManager.application'>http://www.sysnet.pe.kr/Tools/DeveloperToolManager.application</a>"에서 접근하니 정상적으로 실행이 되었습니다. 아쉽게도 정확한 예외 상황을 밝혀내지는 못했지만, 이 부분은 나중에도 얼마든지 문제가 될 것 같습니다. 어쩌면, 임시 폴더를 정리하는 응용 프로그램을 만들어야 될지도 모를 것 같다는! ^^<br /> <br /> 다음에 이런 현상이 있을 때는 좀 더 주의 깊게 살펴봐야 겠습니다. (참고로, 일단 한번 위와 같이 되고 나니 휴지통에서 지웠던 임시 폴더 파일을 복원해도 정상적으로 실행이 되었습니다.)<br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
7609
(왼쪽의 숫자를 입력해야 합니다.)