【问题标题】:objdump -t /usr/bin/sort command shows no symbolsobjdump -t /usr/bin/sort 命令不显示符号
【发布时间】:2014-01-24 10:21:02
【问题描述】:

如果我尝试 objdump -t /usr/bin/sort 命令,它会说没有符号。但它似乎适用于我的程序。这是什么原因?

【问题讨论】:

  • 你看到文件 /usr/bin/sort 输出了吗?它是否显示剥离的二进制文件。如果它被剥离,你就不能有调试符号

标签: c linux objdump


【解决方案1】:

/usr/bin/sort 的符号已被删除,例如使用 strip 程序 - 对于大多数可执行文件,不需要符号表(或仅在调试时需要)。 Here 提供更多信息。

【讨论】:

    【解决方案2】:

    正如另一个答案所提到的,您的 sort 二进制文件很可能已删除其符号。但是仍然应该有一些动态符号信息,这可能对调试仍然有用。这些通常是动态链接的二进制文件调用的函数的名称。这通常包括 libc 函数,以及您的二进制文件可能已链接的任何其他 lib*.so 共享库。

    要查看这些,只需添加 -T 参数:

    $ objdump -tT /bin/sort
    
    /bin/sort:     file format elf64-x86-64
    
    SYMBOL TABLE:
    no symbols
    
    
    DYNAMIC SYMBOL TABLE:
    0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 fileno
    0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 dup2
    0000000000000000      DF *UND*  0000000000000000  GLIBC_2.2.5 strcoll
    ...
    $
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多