Dot Net Debugging CLR Version Issue

[주의 사항]

본 블로그에 게시된 정보의 내용 (첨부 문서, 링크 등)은 작성일 현재 기준이며 예고없이 변경 될 수 있습니다.

또한, 참고용으로만 제공됨으로 Microsoft에 책임이 없음을 알려 드립니다. 반드시 적용 전 충분한 테스트를 진행하시기 바랍니다.

 

[요약]

고객사나 테스트 서버에서 받은 Dump 파일의 CLR Version 과 SOS 의 Version 이 틀릴 경우

1. 고객사나 테스트 서버에 존재하는 다음의 파일을 요청하여 지정된 위치에 등록하여 사용

2. Psscor4를 사용

 

[원인 또는 해결 방법]

고객사의 서버나 테스트 서버에서 Dump를 수집한 후 작업 PC에서 Windbg 실행 시

아래과 같이 CLR 과 SOS 의 Version 틀려 Debugging 관련 SOS 명령어를 사용할 수 없을 때가 있다

걱정할 것 없다. 아래의 방법대로 수행하면 된다.

1. Dump 를 받은 서버나 PC에서 다음의 파일을 지정한 위치로 복사한다

필요한 파일은 clr.dll, mscordacwks.dll, SOS.dll 과 같다. 간혹 고객사에 요청하기 힘들거나 이미 테스트 서버가 지워진 경우는 2번째 방법을 사용하면 된다.

2. 아래의 사이트에서 Extension인 Psscor4을 Download 한다.

https://www.microsoft.com/en-us/download/details.aspx?id=21255

그리고 원하는 위치에 psscorde.dll파일을 압축을 푼다.

WinDBG상에서 다음의 명령어를 실행 시켜준다.

위와 같이 정상 동작하는 것을 확인 할 수 있다. (참고로 당연히 .loadby sos clr 은 실행할 필요가 없다)

 

[추가 정보]