linux objdump 符号表 列说明

查看.so的函数列表时:

objdump -tT   liblapack.so | grep 'gotoblas'
0000000000000000      DO *UND*    0000000000000000              gotoblas

上述说明 liblapack.so 存在 gotoblas 还是不存在? 每一列是什么意思?

第一列:符号的值
第二列:一组字符和空格,表示在符号上设置的标志位。下面列出了七个分组:
  1. 第一组:(l,g,,!)本地,全局,两者都不是。
  2. 第二组:(w,) 弱或强符号。
  3. 第三组: (C,) 符号表示构造函数或普通符号。
  4. 第四组:(W,)符号为警告或正常符号。
  5. 第五组:(I,)间接引用另一个符号或正常符号。
  6. 第六组:(d,D,)调试符号、动态符号或正常符号。
  7. 第七组:(F,f,O,) 符号是函数名、文件名、对象名或普通符号。

    第三列:符号所在的节。
    ABS表示绝对,表示不属于任何部分的符号。
    UND 外部链接符号,未在本目标文件定义。
    COM Symbols defined relative to this section are common symbols,全局未初始化变量
    第四列:符号的大小或对齐方式。
第五列:符号的名称。

参考文章:

  1. man objdump
  2. objdump

你可能感兴趣的