1 nm 命令查看符号
$nm -h
Usage: nm [option(s)] [file(s)]
List symbols in [file(s)] (a.out by default).
The options are:
-a, --debug-syms Display debugger-only symbols
-A, --print-file-name Print name of the input file before every symbol
-B Same as --format=bsd
-C, --demangle[=STYLE] Decode low-level symbol names into user-level names
The STYLE, if specified, can be `auto' (the default),
`gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
--no-demangle Do not demangle low-level symbol names
--recurse-limit Enable a demangling recursion limit. This is the default.
--no-recurse-limit Disable a demangling recursion limit.
-D, --dynamic Display dynamic symbols instead of normal symbols
--defined-only Display only defined symbols
-e (ignored)
-f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',
`sysv' or `posix'. The default is `bsd'
-g, --extern-only Display only external symbols
-l, --line-numbers Use debugging information to find a filename and
line number for each symbol
-n, --numeric-sort Sort symbols numerically by address
-o Same as -A
-p, --no-sort Do not sort the symbols
-P, --portability Same as --format=posix
-r, --reverse-sort Reverse the sense of the sort
--plugin NAME Load the specified plugin
-S, --print-size Print size of defined symbols
-s, --print-armap Include index for symbols from archive members
--size-sort Sort symbols by size
--special-syms Include special symbols in the output
--synthetic Display synthetic symbols as well
-t, --radix=RADIX Use RADIX for printing symbol values
--target=BFDNAME Specify the target object format as BFDNAME
-u, --undefined-only Display only undefined symbols
--with-symbol-versions Display version strings after symbol names
-X 32_64 (ignored)
@FILE Read options from FILE
-h, --help Display this information
-V, --version Display this program's version number
$nm -D liborc.so |grep hdfs
U _ZN4hdfs10FileSystem3NewERPNS_9IoServiceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7OptionsE
U _ZN4hdfs12ConfigParser20LoadDefaultResourcesEv
U _ZN4hdfs12ConfigParserC1Ev
U _ZN4hdfs12ConfigParserD1Ev
U _ZN4hdfs3URI17parse_from_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
U _ZN4hdfs3URIC1Ev
00000000001166b8 W _ZN4hdfs3URID1Ev
00000000001166b8 W _ZN4hdfs3URID2Ev
0000000000116800 W _ZN4hdfs6StatusD1Ev
0000000000116800 W _ZN4hdfs6StatusD2Ev
U _ZN4hdfs7OptionsC1Ev
0000000000117550 W _ZN4hdfs7OptionsD1Ev
0000000000117550 W _ZN4hdfs7OptionsD2Ev
U _ZN4hdfs8StatInfoC1Ev
U _ZN4hdfs9IoService3NewEv
U _ZNK4hdfs12ConfigParser11get_optionsERNS_7OptionsE
U _ZNK4hdfs12ConfigParser17ValidateResourcesB5cxx11Ev
U _ZNK4hdfs3URI3strB5cxx11Eb
U _ZNK4hdfs3URI8get_hostB5cxx11Eb
U _ZNK4hdfs3URI8get_pathB5cxx11Eb
U _ZNK4hdfs3URI8get_portEv
U _ZNK4hdfs3URI8has_portEv
U _ZNK4hdfs6Status8ToStringB5cxx11Ev
0000000000117340 W _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St6vectorIN4hdfs12NamenodeInfoESaISA_EEESt10_Select1stISD_ESt4lessIS5_ESaISD_EE8_M_eraseEPSt13_Rb_tree_nodeISD_E
0000000000116d08 W _ZNSt8_Rb_treeISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ES0_IKS7_N4hdfs5TokenEESt10_Select1stISB_ESt4lessIS7_ESaISB_EE8_M_eraseEPSt13_Rb_tree_nodeISB_E
000000000016efd0 V _ZTIN4hdfs15uri_parse_errorE
00000000001204d0 V _ZTSN4hdfs15uri_parse_errorE
# 如果第一列没有显示,就是该符号没有实现
$c++filt _ZN4hdfs12ConfigParserC1Ev
hdfs::ConfigParser::ConfigParser()
2 c++filt 命令还原符号
$c++filt -h
Usage: c++filt [options] [mangled names]
Options are:
[-_|--strip-underscore] Ignore first leading underscore
[-n|--no-strip-underscore] Do not ignore a leading underscore (default)
[-p|--no-params] Do not display function arguments
[-i|--no-verbose] Do not show implementation details (if any)
[-R|--recurse-limit] Enable a limit on recursion whilst demangling. [Default]
]-r|--no-recurse-limit] Disable a limit on recursion whilst demangling
[-t|--types] Also attempt to demangle type encodings
[-s|--format {none,auto,gnu-v3,java,gnat,dlang,rust}]
[@<file>] Read extra options from <file>
[-h|--help] Display this information
[-v|--version] Show the version information
$c++filt _ZTVSt17_Nested_exceptionIN4Hdfs12HdfsCanceledEE
vtable for std::_Nested_exception<Hdfs::HdfsException>
**【参考】
GCC详解-Binutils工具之c++filt
网友评论