【发布时间】:2019-06-07 15:19:14
【问题描述】:
从逻辑上讲,我认为必须有。如果我是正确的,我还假设它与全局符号表分开,并且它是由编译器在到达函数调用时创建的,并在编译器到达被调用函数的末尾时删除。我还假设在符号表中,变量位置将存储为与堆栈基指针的相对偏移量。只是出于好奇并参考所有符号表,是存储在符号表条目中的变量的显式长度,还是存储的变量类型(可以从中推断出长度),或者两者兼而有之?
【问题讨论】:
-
这些都是特定编译器的实现细节,所以没有一个简单的答案。
-
你有很多问题,也许你应该完善一下。
-
我认为一个更好的问题可能是这样的符号表是否可以传递给调试器。我在调试器中的进一步目标之一。
-
@ecm 同样的答案也适用,调试器与符号表的交互方式因调试器而异
-
1.所有变量都在一个符号表中。 2.不一定分开。 3. 是的,偏移量已存储。 4. 取决于编译器,但它是我的,我只存储类型而不重复长度信息。
标签: compiler-construction symbol-table stack-frame