>백엔드 개발 >C++ >공유 라이브러리(.so 파일)에서 기호 정보를 검색하고 해체하려면 어떻게 해야 합니까?

공유 라이브러리(.so 파일)에서 기호 정보를 검색하고 해체하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-19 12:22:13287검색

How Can I Retrieve and Demangle Symbol Information from a Shared Library (.so file)?

공유 라이브러리에서 기호 정보 검색

공유 라이브러리(.so 파일)로 작업할 때 해당 기호를 검사해야 하는 경우가 많습니다. 구조와 상호 연결성에 대한 통찰력을 얻습니다. 이 가이드에서는 원본과 종속성을 식별하는 기술을 포함하여 .so 파일 내의 기호를 나열하는 다양한 방법을 살펴봅니다.

nm 명령

nm 유틸리티는 일반적으로 실행 파일과 라이브러리 파일의 기호를 나열하는 도구입니다. 기호 이름, 주소 및 특성에 대한 자세한 정보를 제공합니다. nm을 사용하여 .so 파일의 기호를 나열하려면:

nm -gD yourLib.so

-gD 옵션은 nm에 기호 이름 및 관련 GNU 디버깅 정보를 표시하도록 지시합니다.

C 기호 디맹글링

C 라이브러리의 경우 최적화를 위해 기호가 엉망이 되는 경우가 많습니다. 이러한 기호를 정리하여 더 읽기 쉽게 만들려면 -C 옵션을 사용하십시오.

nm -gDC yourLib.so

ELF 형식 공유 라이브러리

.so 파일이 ELF 형식인 경우 , 두 가지 대체 도구를 사용할 수 있습니다. 활용:

objdump

Objdump는 기호 목록을 포함하여 ELF 파일에 대한 포괄적인 정보를 제공합니다.

$ objdump -TC libz.so

-C 옵션은 C를 demangle합니다. 기호, 개선 가독성.

readelf

Readelf는 기호 정보를 포함하여 ELF 파일에 대한 풍부한 기능 분석을 제공합니다.

$ readelf -Ws libz.so

-Ws 옵션은 표시됩니다. 자세한 기호표.

위 내용은 공유 라이브러리(.so 파일)에서 기호 정보를 검색하고 해체하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.