Welcome to TechNet Blogs Sign in | Join | Help

ProcessExplorer를 이용한 Troubleshooting

이전 포스트에 이어 무엇으로 ProcessExplorer을 이용한 Troubleshooting을 보여드릴까 고심 하던 중 제 Laptop에서 ProcessExplorer를 사용해 문제해결을 한 예가 있어 여러분들께 보여 드릴까 합니다. 한가지 말씀드릴 것은 여기서 말씀 드리는 방법은 ProcessExplorer를 사용하는 하나의 예제이며 더 낳은 다른 방법이 있을 수 있습니다.

ProcessExplorer 다운로드

 

[문제내용]

IE에서 특정 사이트에 접속한 뒤 IE를 다른 URL로 이동하거나 종료버튼을 누르면 IE에서 프로그램 응답 없음(Hang) 상태가 발생한다.

clip_image002

그림. 응답 없는 Internet Explorer

 

[해결과정]

위와 같은 문제 상황에서 가정을 세워 봅니다

‘IE는 문제가 없다, 그렇다면 IE 실행 시 환경적인 요인이 IE에 문제를 일으키는 것은 아닐까?’

대부분 IE에서 문제가 발생하는 원인이 ActiveX혹은 툴바(Tool bar)같은 3’rd party 제품이 IE에 붙어 실행되면서 나타나므로 문제 사이트에 접속했을 때 어떤 것들이 IE와 함께 로드 되는지를 확인 하고 그것을 Disable하여 문제가 발생하는지 확인 합니다. 특정 컴포넌트를 Disable하고 문제가 재발하지 않았다면 해당 컴포넌트의 문제 가능성이 높습니다.

 

여기서 핵심은 ProcessExplorer을 이용해 문제가 발생했을 때 어떤 컴포넌트(DLL)이 로드 되었는지 확인 하는 것입니다

 

그럼 한번 제 컴퓨터에서 문제를 일으키는 그것(?)을 찾아보도록 합시다.

1) 먼저 ProcessExplorer로 실행하고 IE 실행 시 로드 되는 DLL을 확인 하기 위해서 그림에서와 같이 View를 설정합니다. 그러면 하단에 해당 Process 실행시 로드되는 DLL을 확인 할 수 있습니다.

clip_image004

그림 1. ProcessExplorer에서 환경 설정

 

2) 문제 상태와 정상 상태에서 로드 되는 Process와 DLL을 비교 하기 위해 IE에서 정상일 때 로드 되는 Process와 DLL 리스트를 저장합니다.

a. IE를 실행합니다.

b. 상단 panel에서 iexplorer.exe를 선택합니다.

c. File > Save As로 화면에 나타난 리스트를 저장합니다. (예. 1.txt)

clip_image006

그림 2. 문제 발생 전 상태

 

3) 이제 IE에서 문제의 사이트로 이동해 로드되는 로드 되는 Process와 DLL 리스트를 저장합니다.

a. 문제 사이트로 이동시 하단에 새로 로드 되는 DLL이 잠깐 하이라이트 되어 나타납니다, 이것들이 이 문제를 일으키는 주범일 가능성이 높습니다.

b. File > Save As로 화면에 나타난 리스트를 저장합니다. (예. 2.txt)

c. 문제가 발생하는지 닫기 혹은 다른 사이트로 이동해 봅니다.

clip_image008

그림 3. 문제 사이트에서 로드 되는 DLL들

 

4) 문제 전/후에 로드 된 DLL을 비교하여 어떤 DLL이 문제를 일으켰는지 추정합니다, 텍스트 내용을 눈 빠져라 비교할 수도 있지만 windiff.exe라는 도구를 이용하면 쉽게 텍스트간의 차이점을 확인 할 수 있습니다.

a. Windows 설치 CD에 있는 Windows Support라는 폴더에서 Windows support tool을 설치하면 windiff를 사용할 수 있습니다.

b. Windiff.exe를 실행하고 File > Compare Files를 실행합니다.

c. Select First File에서는 Step3번에서 저장한 1.txt파일을 선택하고 Select Second File에서는 Step4에서 저장한 2.txt파일을 선택합니다.

d. 그림에서와 같이 두 파일 텍스트 간에 서로 다른 내용을 확인 할 수 있습니다(노란색으로 표시되는 부분). Windiff에서 보면 두번째 텍스트 파일에 처음 문제 발생전과 다른 새로운 BGM.DLL이 로드 됨을 확인 할 수 있습니다.

clip_image010

그림 4. Windiff로 확인한 IE에 로드된 DLL

 

5) BGM.DLL이 어떤 파일인지 알기 위해 파일 속성을 확인 할 수도 있고 그림에서와 같이 string을 확인하는 방법이 있습니다.

a. ProcessExplorer의 하단에서 BGM.DLL를 더블 클릭합니다.

b. Strings 탭으로 이동합니다.

c. DLL 내부에 있는 String 중에 어떤 ActiveX인지를 알 수 있는 문자를 확인 할 수 있습니다.

clip_image011

그림 5. String 내용

 

6) IE에서 BMGCtrl이라는 ActiveX를 Disable 합니다.

a. IE > 도구 > 인터넷옵션 > 프로그램 > 추가 기능 관리

b. String에서 확인 했던 BGMCtrl Clasee가 보입니다. 이것을 선택 합니다.

c. 하단에 ‘사용 안 함’을 선택한 뒤에 ‘확인’을 클릭합니다.

d. IE를 재 시작 한 후에 문제가 발생하지 않음을 확인 합니다.

clip_image013

그림 6. IE에서 해당 ActiveX를 Disable

 

사실 위와 같은 경우는 꼭 해당 ActiveX 만의 문재라기 보다는 또 다른 변수와 복합된 문제의 가능성이 있습니다, 그러나 처음 말씀 드렸듯이 ProcessExplorer의 예제를 보여드리기 위함임을 다시 한번 말씀 드립니다.

이번 포스트에서 설명 드린 방법 이외에도 ProcessExplorer을 이용할 수 있는 방법은 무궁무진 합니다. 다음에도 제 Laptop에 ProcessExplorer의 도움이 필요한 문제가 생기면 또 한번 포스트 해보도록 하겠습니다. ^^

Published Friday, January 25, 2008 4:32 PM by sankim

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# IE(Internet Explorer)가 hang이 되거나 오류가 발생시 기본 점검 방법

IE를 실행하다가 Hang이 걸리거나 Crash가 되면 문제를 찾는 방법이 쉽지 않습니다. 문제 해결을위해 이전에 포스팅한 ProcessExplorer를 이용한 Troubleshooting

Monday, March 03, 2008 11:26 PM by Sankim's Blog

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker