DebugDiag: Unable to find mscordacwks_x86_x86_[...version...].dll
Crash Dump를 Debug Diag 1.2로 로드하고 분석해 보았는데 다음과 같은 경고가 뜹니다.
.NET runtime was loaded in the process but managed analysis was not done on this dump file because the managed debugger extension commands failed to execute with the below error
CLRDLL: CLR DLL load disabled
CLR Debugger Extension Load Attempt
CLRDLL: Unable to find mscordacwks_x86_x86_2.0.50727.4241.dll by mscorwks search
CLRDLL: Unable to find 'mscordacwks_x86_x86_2.0.50727.4241.dll' on the path
CLRDLL: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.4241.dll, Win32 error 0n2
CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.4241.dll, Win32 error 0n2
이해할 수 없군요. 덤프 파일이 생성된 PC에서 실행한 것인데도 mscordacwks...dll을 찾을 수 없다고 나옵니다. 사실 없는 것은 아닙니다. C:\Windows\Microsoft.NET\Framework\v2.0.50727 폴더에 가면 mscordacwks.dll 파일을 찾을 수 있고, 속성 창을 통해서 확인해 보면 파일 버전이 2.0.50727.4241로 나옵니다.
예전에 겪었던 문제의 해결방법을 참조해서,
windbg의 mscordacwks DLL 로드 문제 - 두 번째 이야기
; https://www.sysnet.pe.kr/2/0/1375
"c:\symbols2"라는 임의의 폴더를 하나 만들어 두고 시스템 환경 변수인 PATH에 경로를 추가한 다음, C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscordacwks.dll 파일을 c:\symbols2 폴더에 mscordacwks_x86_x86_2.0.50727.4241.dll 이름으로 복사해 주었습니다.
이렇게 해서 해결은 했지만, 어쨌든 debug diag 도구가 저런 식으로 동작하는 이유는 알 수가 없군요.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]