Linux 查看so 符号列表

Linux 查看so 符号列表

使用nm命令:

nm命令可以用来显示二进制文件(例如可执行文件、共享对象文件等)中的符号信息。使用nm查看.so文件的符号列表,可以这样做:

nm -D yourfile.so

-D选项是为了查看动态符号,也就是那些在运行时需要解析的符号。如果不加-D选项,nm会显示静态符号,这些符号通常在编译时就已经被解析。

                 				U acosf@GLIBC_2.2.5
                 				U atanf@GLIBC_2.2.5
0000000000fe47b0 D clBuildProgram_pfn
0000000000fe47a8 D clCompileProgram_pfn
0000000000fe47a0 D clCreateBuffer_pfn
00000000000dc8c0 T cvClone
0000000000126bd0 T cvCloneGraph
00000000000dc330 T cvCloneImage
00000000000d3ff0 T cvCloneMat
00000000000d4100 T cvCloneMatND
0000000000244430 W _ZNSt11_Deque_baseIPN2cv3ocl7Context4ImplESaIS4_EE17_M_initialize_mapEm
0000000000246030 W _ZNSt11_Deque_baseIPN2cv8UMatDataESaIS2_EE17_M_initialize_mapEm
000000000023afc0 W _ZNSt11_Deque_baseIPN2cv8UMatDataESaIS2_EED1Ev
000000000023afc0 W _ZNSt11_Deque_baseIPN2cv8UMatDataESaIS2_EED2Ev
                 				U _ZTVN10__cxxabiv117__class_type_infoE@CXXABI_1.3
                 				U _ZTVN10__cxxabiv120__si_class_type_infoE@CXXABI_1.3
                 				U _ZTVN10__cxxabiv121__vmi_class_type_infoE@CXXABI_1.3
0000000000fdb408 V _ZTVN2cv11FileStorage4ImplE
0000000000fdb4f8 V _ZTVN2cv11FileStorageE
0000000000fd9c80 V _ZTVN2cv12MatAllocatorE

在使用nm命令显示符号信息时,每一行的输出都包括一个字符来表示该符号的类型。在你提供的输出中,字符“T”表示该符号是一个“Text”(代码)段中的符号。换句话说,这是一个函数或者是可执行代码。

更具体地说,这些符号对应于JNI(Java Native Interface)函数的实现。JNI是Java语言和本地代码(如C或C++)之间的桥梁,允许Java代码调用本地函数,或者允许本地代码调用Java代码。在这里,每个符号名都是一个JNI函数,由其签名组成,这些函数是由C或C++实现的,并且可以被Java代码调用。

这里有一个关于符号类型的简短列表:

  • T:Text段中的符号,通常是函数或可执行代码。
  • D:数据段中的符号,通常是全局变量。
  • B:未初始化的数据段中的符号。
  • U:未定义的符号。
  • R:只读数据段中的符号。

还有其他的符号类型,你可以查看nm的man页面来获取完整的列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值