<tfoot id='zdmyb'></tfoot>
  • <small id='zdmyb'></small><noframes id='zdmyb'>

  • <i id='zdmyb'><tr id='zdmyb'><dt id='zdmyb'><q id='zdmyb'><span id='zdmyb'><b id='zdmyb'><form id='zdmyb'><ins id='zdmyb'></ins><ul id='zdmyb'></ul><sub id='zdmyb'></sub></form><legend id='zdmyb'></legend><bdo id='zdmyb'><pre id='zdmyb'><center id='zdmyb'></center></pre></bdo></b><th id='zdmyb'></th></span></q></dt></tr></i><div id='zdmyb'><tfoot id='zdmyb'></tfoot><dl id='zdmyb'><fieldset id='zdmyb'></fieldset></dl></div>
    <legend id='zdmyb'><style id='zdmyb'><dir id='zdmyb'><q id='zdmyb'></q></dir></style></legend>

          <bdo id='zdmyb'></bdo><ul id='zdmyb'></ul>

        如何列出 .so 文件中的符号

        时间:2023-09-19

            <small id='p8Fjf'></small><noframes id='p8Fjf'>

              <i id='p8Fjf'><tr id='p8Fjf'><dt id='p8Fjf'><q id='p8Fjf'><span id='p8Fjf'><b id='p8Fjf'><form id='p8Fjf'><ins id='p8Fjf'></ins><ul id='p8Fjf'></ul><sub id='p8Fjf'></sub></form><legend id='p8Fjf'></legend><bdo id='p8Fjf'><pre id='p8Fjf'><center id='p8Fjf'></center></pre></bdo></b><th id='p8Fjf'></th></span></q></dt></tr></i><div id='p8Fjf'><tfoot id='p8Fjf'></tfoot><dl id='p8Fjf'><fieldset id='p8Fjf'></fieldset></dl></div>
              • <bdo id='p8Fjf'></bdo><ul id='p8Fjf'></ul>
                • <legend id='p8Fjf'><style id='p8Fjf'><dir id='p8Fjf'><q id='p8Fjf'></q></dir></style></legend>
                  <tfoot id='p8Fjf'></tfoot>
                    <tbody id='p8Fjf'></tbody>

                  本文介绍了如何列出 .so 文件中的符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  如何列出从 .so 文件导出的符号?如果可能,我还想知道它们的来源(例如,它们是否是从静态库中提取的).

                  How do I list the symbols being exported from a .so file? If possible, I'd also like to know their source (e.g. if they are pulled in from a static library).

                  我使用的是 gcc 4.0.2,如果这有区别的话.

                  I'm using gcc 4.0.2, if that makes a difference.

                  推荐答案

                  列出符号的标准工具是 nm,你可以像这样简单地使用它:

                  The standard tool for listing symbols is nm, you can use it simply like this:

                  nm -gD yourLib.so
                  

                  如果您想查看 C++ 库的符号,请添加-C"选项,该选项可对符号进行解构(解构后可读性更高).

                  If you want to see symbols of a C++ library, add the "-C" option which demangle the symbols (it's far more readable demangled).

                  nm -gDC yourLib.so
                  

                  如果您的 .so 文件是 elf 格式,您有两个选择:

                  If your .so file is in elf format, you have two options:

                  任一objdump(-C 也可用于对 C++ 进行分解):

                  Either objdump (-C is also useful for demangling C++):

                  $ objdump -TC libz.so
                  
                  libz.so:     file format elf64-x86-64
                  
                  DYNAMIC SYMBOL TABLE:
                  0000000000002010 l    d  .init  0000000000000000              .init
                  0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 free
                  0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 __errno_location
                  0000000000000000  w   D  *UND*  0000000000000000              _ITM_deregisterTMCloneTable
                  

                  或者使用readelf:

                  $ readelf -Ws libz.so
                  Symbol table '.dynsym' contains 112 entries:
                     Num:    Value          Size Type    Bind   Vis      Ndx Name
                       0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
                       1: 0000000000002010     0 SECTION LOCAL  DEFAULT   10
                       2: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND free@GLIBC_2.2.5 (14)
                       3: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND __errno_location@GLIBC_2.2.5 (14)
                       4: 0000000000000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTable
                  

                  这篇关于如何列出 .so 文件中的符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:C++虚继承 下一篇:如何最好地消除有关未使用变量的警告?

                  相关文章

                  最新文章

                      <bdo id='33z5J'></bdo><ul id='33z5J'></ul>
                  1. <tfoot id='33z5J'></tfoot><legend id='33z5J'><style id='33z5J'><dir id='33z5J'><q id='33z5J'></q></dir></style></legend>

                    1. <i id='33z5J'><tr id='33z5J'><dt id='33z5J'><q id='33z5J'><span id='33z5J'><b id='33z5J'><form id='33z5J'><ins id='33z5J'></ins><ul id='33z5J'></ul><sub id='33z5J'></sub></form><legend id='33z5J'></legend><bdo id='33z5J'><pre id='33z5J'><center id='33z5J'></center></pre></bdo></b><th id='33z5J'></th></span></q></dt></tr></i><div id='33z5J'><tfoot id='33z5J'></tfoot><dl id='33z5J'><fieldset id='33z5J'></fieldset></dl></div>
                    2. <small id='33z5J'></small><noframes id='33z5J'>