2011-08-02 2 views
1

덤프 파일과 windbg를 사용하여 64 비트 시스템에서 실행중인 32 비트 .net 프로세스를 디버깅하려고합니다. 덤프 파일을로드하면 WARNING: MSVCR100_CLR0400 overlaps clr 경고가 표시됩니다.SOS를 사용하여 windbg에서 모듈 겹침을 어떻게 디버깅합니까?

wow64exts을로드하고 32 비트 모드로 전환 후, 나는 SOS를로드하고 다음과 같은 오류가 발생합니다 : CLR.dll의 버전이 사실 4.0.30319.235에 있지만 MSVCR100_CLR0400 것을

The version of SOS does not match the version of CLR you are debugging. Please 
load the matching version of SOS for the version of CLR you are debugging. 
CLR Version: 10.0.30319.1 
SOS Version: 4.0.30319.235 
CLRDLL: Loaded DLL C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll 

lmv가 나에게 말한다. dll 버전은 10.0.30319.1입니다. 로드 된 모듈의 주소를 보면

lm 모듈의 중복을 보여줍니다과 범위 :

726e0000 727b1000 MSVCR100_CLR0400 (deferred)    
727a0000 72e10000 clr  (deferred) 

내 결론은 SOS 혼란 대신 CLR의 MSVCR100_CLR0400에 대한 모듈 헤더를 찾는지고 있다는 점이다.

어떻게하면이 문제를 해결할 수 있습니까? 그렇다면 SOS를 사용하여이 덤프를 디버깅 할 수 있습니까?

답변

1
+0

더 중요한 것은, 나는 32 비트 덤프, 32 비트 프로세스의 아닌 64 비트 덤프를 캡처 할 필요가 있었다. 이 블로그 게시물은 방법을 설명합니다. –

+0

'! wow32exts.sw'는 32 비트 프로세스의 64 비트 덤프를로드 할 수 있지만 모든 SOS 기능이 작동하는 것은 아닙니다 (예를 들어'! eestack -EE'는 괜찮지 만'! clrstack'은 그렇지 않습니다) –

관련 문제