Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在.so(共享库)文件中生成符号名?_Android_Linux_Shared Libraries - Fatal编程技术网

Android 如何在.so(共享库)文件中生成符号名?

Android 如何在.so(共享库)文件中生成符号名?,android,linux,shared-libraries,Android,Linux,Shared Libraries,如何在共享库文件中生成符号的名称?例如,当使用elfread-Ws读取libutils.so文件(android系统utils库)中的符号时,我会得到以下格式的几个符号名称: _ZN7android10VectorImpl14insertVectorAtERKS0_j 如何解密这个符号名?< /p> ,这似乎是一个被损坏的名称,例如,C++,并且可以更好地理解那些使用 -c>代码>选项: -C --demangle[=style] 将(demangle)低级符号名称解码为用户级名称。除了删除

如何在共享库文件中生成符号的名称?例如,当使用elfread-Ws读取libutils.so文件(android系统utils库)中的符号时,我会得到以下格式的几个符号名称:

_ZN7android10VectorImpl14insertVectorAtERKS0_j 

如何解密这个符号名?< /p> ,这似乎是一个被损坏的名称,例如,C++,并且可以更好地理解那些使用<代码> -c>代码>选项:

-C

--demangle
[=style]
将(demangle)低级符号名称解码为用户级名称。除了删除系统所提供的任何初始下划线之外,这使得C++函数名称可读。不同的编译器有不同的损坏样式。可选的Demanling style参数可用于为编译器选择适当的Demanling样式。有关Demanling的更多信息,请参见

在共享库上使用
nm
时,此选项显示其符号:

-D

--动态的

显示动态符号而不是普通符号。这仅对动态对象有意义,例如某些类型的共享库


libutils.so是elf格式,因此nm不报告任何符号。@shaveenk您可以通过管道将输出从
readelf
传输到
c++filt
,以达到与
nm-c