답변:
당신이 필요로하는 것은 nm
그 -D
옵션 :
$ nm -D /usr/lib/libopenal.so.1
.
.
.
00012ea0 T alcSetThreadContext
000140f0 T alcSuspendContext
U atanf
U calloc
.
.
.
내 보낸 sumbol은로 표시됩니다 T
. 다른 공유 객체에서로드해야하는 필수 기호에는가 있습니다 U
. 기호 테이블에는 함수 만 포함 된 것이 아니라 내 보낸 변수도 포함됩니다.
자세한 내용은 nm
매뉴얼 페이지 를 참조하십시오.
nm
에서는 -D
플래그 없이 사용 하십시오 .
objdump -T *.so
또한 일을 할 수 있습니다
이미 언급 한 도구 중에서도 readelf
( manual )을 사용할 수 있습니다 . 비슷 objdump
하지만 더 자세히 설명합니다. 차이점 설명에 대해서는 이것을 참조하십시오 .
$ readelf -sW /lib/liblzma.so.5 |head -n10
Symbol table '.dynsym' contains 128 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FUNC GLOBAL DEFAULT UND pthread_mutex_unlock@GLIBC_2.0 (4)
2: 00000000 0 FUNC GLOBAL DEFAULT UND pthread_mutex_destroy@GLIBC_2.0 (4)
3: 00000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable
4: 00000000 0 FUNC GLOBAL DEFAULT UND memmove@GLIBC_2.0 (5)
5: 00000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.0 (5)
6: 00000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.0 (5)