티스토리 뷰


ldd

- 리눅스 명령어 
- 지정한 프로그램 또는 파일의 라이브러리 의존성을 살펴볼때 사용하는 명령어 

경로 --->  usr/bin/ldd


사용법

ldd [옵션] 파일명

 -d
--data-relocs
존재해야 할 곳에 없는 오브젝트의 위치를 다시 배치하고, 그 결과를 출력

 -r
--function-relocs
데이터 오브젝트와 함수를 재배치하고 오브젝트나 함수 중에 찾지 못한 결과를 출력

 -v
--verbose
상세 정보를 출력


 --help
ldd 명령어의 사용법 출력

 

 --version
ldd 명령어의 버전 정보를 출력


ldd 명령어가 필요한 이유 

어제 같은 서버내에 같은 소스를 돌려보는데 용량이 다른 바이너리가 생성 되었다.  
db환경 말고는 다른것이 전혀 없었다.  또한 하나는 정상적으로 동작하는 반면 하나는 함수에서 fail이 떨어졌다. 
ldd를 통해서 의존성을 확인하고 라이브러리가 어떻게 다른지 상세하게 알지는 못해도 해당 라이브러리의 용량을 파악하여 
패치여부를 따져 볼수는 있다. 이런식으로 역추적 해나가 두 서버상 서로 다른 2개의 라이브러리들을 확인하여  정상적으로 동작하는 
서버에 있는 라이브러리 2개를 백업 먼저하고 엎어 썼다.  이 후,  소스는 정상적으로 컴파일 되었다.  


for문을 이용하여 디렉터리내에 라이브러리들을 살펴본뒤 jansson과 엮인 라이브러리들을 솎아내는 sample 이다. 

for filename in `ls *.so`; do echo $filename; ldd $filename | grep jansson; done














댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31