filelibcurl.so.6"/>

知方号

知方号

[Linux] 判断可执行文件或动态库是否包含符号表

[Linux] 判断可执行文件或动态库是否包含符号表

在Linux下生成一个可执行文件或动态库,可以使用gcc/g++的"-g"选项使文件包含调试符号表。要在Linux下判断一个第三方的可执行文件或动态库是否包含调试符号表,可以通过file命令实现:

srv01> file libcurl.so.6libcurl.so.6: ELF 64-bit LSB shared object, x86-64, version 1 (FreeBSD), dynamically linked, not strippedsrv01> file /usr/bin/X11/curl/usr/bin/X11/curl: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.0 (800107), stripped

显示not stripped,表明文件带调试符号表;而显示stripped,表明文件已去除符号表。

如果文件包含调试符号表,可以通过objdump -t命令及选项打印文件的符号表:

srv01> objdump -t libcurl.so.6libcurl.so.6: file format elf64-x86-64SYMBOL TABLE:0000000000000120 l d .hash 000000000000000000000000000012b0 l d .dynsym 00000000000000000000000000004b08 l d .dynstr 00000000000000000000000000006f36 l d .gnu.version 000000000000000000000000000073e8 l d .gnu.version_r 00000000000000000000000000007418 l d .rela.dyn 000000000000000000000000000092a8 l d .rela.plt 0000000000000000000000000000bfc0 l d .init 0000000000000000000000000000bfd4 l d .plt 0000000000000000000000000000de00 l d .text 00000000000000000000000000043388 l d .fini 0000000000000000........

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。