'DLL'에 해당되는 글 1건

  1. [2008/10/17] 로드된 DLL 파일 찾기

로드된 DLL 파일 찾기

[Development]

Cygwin Error!!!

개발 PC에는 여러 환경에서의 개발을 위해서 Cygwin이 설치되어 있다. 그런데 어느 날부터 Command Prompt에서 Cygwin에 관련된 명령어들이 작동하지 않았다.


...cygwin system shared memory version mismatch detected...


이라는 에러 메시지를 출력하면서 실행이 멈추었다. Cygwin의 FAQ를 찾아보니, 시스템 상에 (정확히는 PATH 환경변수로 정의된 디렉토리 안에) 하나의 DLL 파일만 존재해야만 한다고 한다. 결국 다른 버전의 Cygwin DLL (cygwin1.dll) 파일이 먼저 로드되어서 충돌을 일으킨 것이다.


어느 프로세스가 로드한 것일까?

로컬 검색을 통해서 OpenSSH 디렉토리에 cygwin1.dll 파일이 존재한다는 것을 확인하고 삭제하려고 하였다. 그러나 이미 다른 프로세스가 DLL 파일을 로드한 상태였기 때문에 삭제할 수 없었다. 이를 해결하려면 어느 프로세스가 해당 DLL을 로드하였는지 찾아서 해당 프로세스를 죽이고, cygwin1.dll 파일을 삭제해야만 했다. 이를 위해서 tasklist 명령어가 사용되었다.


tasklist.png


tasklist는 Unix 시스템의 ps에 해당하는 명령어로 응용 프로그램이나 관련 작업/프로세스의 목록을 출력해준다. 여기에 /m [모듈] 옵션을 추가해서 [모듈]과 패턴이 일치하는 이름을 갖는 DLL을 로드한 프로세스를 볼 수 있다.


참조

이 글은 스프링노트에서 작성되었습니다.

2008/10/17 16:30 2008/10/17 16:30
TAG. ,