【问题标题】:Requirement of symbol table in the final executable?最终可执行文件中的符号表要求?
【发布时间】:2015-05-16 05:43:01
【问题描述】:

我读到 Windows 可移植可执行格式包含一个符号表。我理解为什么在编译的语义分析阶段以及代码生成期间需要符号表。但是我不明白为什么最终的可执行文件本身应该包含一个符号表,因为在这个阶段地址被映射到汇编代码中。我错过了什么??

【问题讨论】:

    标签: symbol-table


    【解决方案1】:

    我真的不能专门针对 PE 说话,但我想这与 ELF 的情况类似,其中有两个不同的符号表可以说:

    • “普通”符号表(通常称为“符号表”)在最终可执行文件中是可选的。如果它存在,它会被调试器和其他检查带有符号信息的程序的程序使用。它通常由链接器生成,但之后可以并且经常被剥离以减小文件大小。
    • 动态符号表用于在运行时链接 DSO,因此需要为使用动态链接的可执行文件提供。但是,它只列出了可执行文件需要(或想要公开,这也是可能的)的外部符号;不是链接期间出现在其中的每个符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 2019-06-05
      • 2014-12-05
      • 2011-10-29
      • 1970-01-01
      相关资源
      最近更新 更多