nm이 /lib/i386-linux-gnu/libc.so.6의 기호를 표시하지 않는 이유는 무엇입니까?

nm이 /lib/i386-linux-gnu/libc.so.6의 기호를 표시하지 않는 이유는 무엇입니까?

내가 볼 것으로 예상되는 기호의 수libc.so.6파일 포함인쇄 기능. 내가 사용하는 것은나노미터이를 찾는 도구가 있지만 libc.so.6에는 기호가 없다고 나와 있습니다.

답변1

일반 기호가 제거되었을 수 있으며 남은 것은 사용할 수 있는 동적 기호입니다 nm -D.

답변2

@PSkocik이 이 질문에 답변했습니다. 자세한 내용을 추가하고 싶었습니다. ELF에는 두 가지 종류의 기호 부분 이 있습니다 .symtab..dynsymLinux 표준 기본 코어 사양(LSB_5.0.0이라고도 함),더 알아보기). .symtab공유 라이브러리 자체에 대한 연결 단계입니다. 링크가 완료되면 .symtab이 섹션은 더 이상 필요하지 않습니다. 이 .dynsym섹션에는 동적 링커가 런타임 시 검색하는 중요한 기호가 포함되어 있습니다. nm기본적으로 .symtab이 섹션의 기호만 덤프됩니다.

LSB_5.0.0.symtab10.2.2.1절. “ELF 섹션 유형”에서는 적합한 공유 라이브러리가 둘 중 하나 또는 둘 다를 가져야 .dynsym하지만 둘 다 가질 수는 없다고 명시합니다. ABI 라이브러리의 일부로 libc는 .symtab사양에서 제거되었습니다.

답변3

공유 객체인지 일반 ASCII 파일인지 확인하세요. 공유 객체인 경우 "ELF 32비트 LSB 공유 객체"가 표시되어야 합니다.

file /lib/i386-linux-gnu/libc.so.6

관련 정보