- dump
실행파일과 공유 오브젝트의 헤더정보를 보려면 dump 명령을 사용한다. 공유 라이브러리를 사용할 때 유용한 옵션으로 -H 옵션(헤더정보)과 -Tv 옵션(심볼정의정보)이 있다.
$ dump -H func1.so
$ dump -Tv func1.so
- genkld
시스템 공유 라이브러리 세그먼트에 로드되어 있는 공유 오브젝트를 보기위해 genkld 명령을 사용한다. 결과는 세 개의 컬럼에 나오는데 각각은 시스템 세그먼트 내의 오브젝트의 가상 주소, 오브젝트의 크기, 로드된 파일의 이름이다.
32bit 공유 오브젝트의 가상 주소는 0xD 부터 시작하고, 64bit 공유 오브젝트의 주소는 0x90000000 에서 시작한다.
$ genkld | head -1; genkld | grep 'libc.a'
- ldd
ldd 명령은 실행파일을 수행하기 위해 로드할 공유 오브젝트와 아카이브 멤버를 나열한다.
$ ldd helloworld
- nm
nm 명령은 오브젝트 파일, 실행파일, 공유 오브젝트등의 파일을 지정해서 이 파일의 심볼 정보를 보여준다.
$ nm libone.so
- rtl_enable
rtl_enable 명령으로 런타임 링킹이 활성화되지 않은 공유 라이브러리를 런타임 링킹 활성화시킨다.
- slibclean
root는 slibclean 명령으로 시스템 공유 라이브러리 세그먼트에서 count값이 0인 공유 오브젝트를 내릴 수 있다. 공유 라이브러리를 개발하는 환경에서 이 명령을 유용하게 사용할 수 있다. genkld 다음 slibclean 명령을 사용하면 시스템 공유 라이브러리 세그먼트에 개발중인 공유 오브젝트가 올라가지 않도록 확인할 수 있다. 이 경우 어플리케이션을 시작하면 시스템 로더가 가장 최근 버전의 공유 오브젝트를 올리게 된다. 시스템 세그먼트 안에 동일한 오브젝트가 여러 가지 버전이 올라오지 않도록 한다.
'▶ Tuxedo > 기술자료' 카테고리의 다른 글
truss를 사용한 프로그램 및 오류 분석 (0) | 2012.02.24 |
---|---|
Tuxedo 서비스를 서버 프로세스로 Grouping하는 방안 (0) | 2012.02.24 |
▶ 디버깅 (0) | 2012.02.23 |
▶ 런타임 에러 점검 (0) | 2012.02.23 |
▶ 링크 타임시 에러 점검 (0) | 2012.02.23 |