본문 바로가기
IT base

Dependency Walker

by 개폰지밥 2019. 11. 21.
반응형

Dependency Walker(depends) 사용

저도 자세히 Dependency Walker에 대한 사용방법은 모르겠으나, 이해한 선에서 적어보려고 합니다.

(틀리면 바로 말씀해주세요)

 

Dependency Walker(depends)의 설명은 아래와 같다

Dependency Walker 32 비트 또는 64 비트 Windows 모듈 (exe, dll, ocx, sys )을 검색하고 모든 종속 모듈의 계층 적 트리 다이어그램을 작성하는 무료 유틸리티입니다. 발견 된 각 모듈마다 해당 모듈에서 내 보낸 모든 함수와 다른 모듈에서 실제로 호출되는 함수가 나열됩니다. 다른보기에는 파일에 대한 전체 경로, 기본 주소, 버전 번호, 시스템 유형, 디버그 정보 등을 포함하여 각 파일에 대한 자세한 정보와 함께 필요한 최소 파일 세트가 표시됩니다.

 

Dependency Walker는 또한 모듈로드 및 실행과 관련된 시스템 오류 문제 해결에 매우 유용합니다. Dependency Walker는 모듈 누락, 잘못된 모듈, 가져 오기 / 내보내기 불일치, 순환 종속성 오류, 일치하지 않는 시스템 유형의 모듈 및 모듈 초기화 실패와 같은 많은 일반적인 응용 프로그램 문제를 감지합니다.

출처: http://www.dependencywalker.com/

내가 이해했을 때는 라이브러리를 실행하기 위해 필요한 프로그램들을 나타내 주고, 예를 들면 MAGICDBAPIPOSTGRES.DLLPOSTGRES.EXE라는 프로그램이 필요한데 존재하고 있고, ?가 필요한데 존재 하지 않는 것 같다. 또한 생성된 함수도 나타나진다.

 

[사용법]

예를 들면 MAGICDBPOSTGRES.DLL을 사용하려면 MAGICDB.DLL, POSTGRES.EXE, MSVCR90.DLL, KERNEL32.DLL이 필요하다. 라고 표시되어있으면 그 파일이 현재 존재하지 않다는 뜻이다. 물론 이 파일이 없으면 MAGICDBPOSTGRES.DLL을 실행하지 못하고 온갖 에러들이 뜬다.

또한 MAGICDBPOSTGRES.DLL을 실행하기 위한 POSTGRES.EXE에도 실행하기 위한 파일들이 필요하다.

위와 같은 파일들이 있기 때문에 POSTGRES.EXE는 성공적으로 실행할 수 있게 된다. POSTGRES.EXE도 마찬가지로 표시가 된 파일이 있으면 그 파일을 찾아 다운로드 해야만 프로그램을 실행할 수 있게 된다.

또한 아래와 같이 생성된 함수도 나타나진다.

이 중에서도 VS 재배포 패키지와 관련된 오류가 많다. 예를 들면 MSVCR90.DLL(인터넷에 다운로드 가능)을 실행시키기 위해서는 VS 재배포 패키지가 필요한 경우가 많다. VS 재배포 패키지는 Visual C++로 개발된 소프트웨어를 사용할시에 반드시 해당버전의 재배포가능 패키지를 함께 설치하여야 해당프로그램이 정상적으로 동작할 수 있습니다. 마이크로소프트사에서 자유롭게 다운받을 수 있습니다.

[ 그림 ] VS  재배포 패키지

[에러 해결해 보기]

분명히 맞는 위치에 .dll 파일이 놓았음에도 불구하고 psql:postgres.sql:19: ERROR: could not load library ... The specified module could not be found. 라는 에러가 뜬다.

환경 변수 PATH도 잡아주고

컴퓨터 부팅시 읽는 system32에도 넣어보고, postgres lib파일에도 넣어봤는데 읽지 못하는 에러가 뜬다.

윈도우상에 에러일 까봐 \ 하나대신에 \\ 도 두개넣어봤는데 동일하게 lib 파일을 찾지 못하는 에러가 발생했다.

그래서 depends를 이용해서 봤더니 MAGICDBAPIPOSTGRES.DLL을 실행하기 위해서는 MSVCR110.DLL이 필요한데 없었던 것이였다.

MSVCR110.DLL 파일을 다운받고 C:\Windows\System32에 넣어줬다.

postgresl의 plug-in이 잘 실행되는 것을 확인할 수 있다.

 

파일을 다운 받을 때 꼭 자신의 PC의 상황에 맞는 파일을 다운 받아야한다. 아니면 아래와 같은 에러가 생길 수 있다.

출처: https://m.blog.naver.com/PostView.nhn?blogId=vekio&logNo=140176233412&proxyReferer=https%3A%2F%2Fwww.google.com%2F

반응형

'IT base' 카테고리의 다른 글

docker  (0) 2020.06.15
[윈도우 10] 외장 ODD로 CD 굽는 방법 (별도 프로그램 없이!)  (1) 2020.01.13
Linux script & ssh/ftp connection  (0) 2019.08.07
Linux ip address Setting  (0) 2019.03.07
Remote access - Team Viewer(원격접속)  (0) 2019.02.15

댓글