【问题标题】:What happens to the symbol table once the object code is created and linked?创建并链接目标代码后,符号表会发生什么变化?
【发布时间】:2020-01-18 01:48:47
【问题描述】:

创建并链接目标代码后,符号表会发生什么变化?另外,当被调用的函数是另一个库的一部分时,符号表如何存储参数传递信息

【问题讨论】:

  • 欢迎来到 SO!请阅读stackoverflow.com/help/how-to-ask
  • 它与包含它的编译器进程一起消失。它的一种形式可以作为调试信息写入目标代码。

标签: linker compiler-construction symbol-table


【解决方案1】:

创建并链接目标代码后,符号表会发生什么变化?

如果需要,它可用作构建可用于调试的程序数据库的基础。

否则通常会被丢弃。

另外,当被调用的函数是另一个库的一部分时,符号表如何存储参数传递信息

通常,编译器需要哪些信息来生成对外部函数/方法的调用与内部函数/方法没有区别。我熟悉的编译器都以完全相同的方式存储参数,无论实现是内部的还是外部的。

【讨论】:

  • "如果需要,它被用作构建可用于调试的程序数据库的基础。否则通常会被丢弃。"那么在动态链接期间如何识别和解决未解析的符号/函数调用,特别是在共享库的情况下。
  • 共享库通常有一个为此目的而构建的小型嵌入式符号表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 2014-10-21
  • 2013-02-26
  • 1970-01-01
相关资源
最近更新 更多