问题标签 [symbol-tables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 在 C 中访问 ELF 符号表
我正在编写一个程序来模仿elfdump -ecps
它目前正确打印出精灵头、程序头和节头,但我被困在符号表的最后几个部分。
所需的输出格式为:
你能告诉我 oth、ver、shndx 和 name 是在哪里找到的吗?
到目前为止,我正在使用以下内容打印出来:
我一直在阅读http://docs.oracle.com/cd/E19457-01/801-6737/801-6737.pdf(第 5 章),但找不到任何有用的东西
compiler-construction - 是否对符号表使用堆栈
我正在创建一个编译器,并且遇到了一些文本,这些文本提出了两种不同的实现符号表的方法。使用一个,每个嵌套级别都有一个符号表,存储在堆栈中。使用第二个选项,只有两个符号表,一个符号表用于维护所有条目,另一个用于跟踪对主表的更改,以便在您通过后知道要删除哪些条目那个特定的块。这些不同实现的优点和缺点是什么?我敢肯定,就删除单个块的符号表而言,第一个选项会更快,但这会带来一些开销(我不清楚)。第二个显然是资源密集型的,因为要删除具有许多声明的大块,
c - 是否可以确定符号是 C 中的变量还是函数?
我正在为在 Linux 机器上运行的用 C 语言编写的应用程序实现一些有限的远程调试功能。目标是与应用程序通信并查找任意变量的值或运行任意函数。
我可以通过dlsym()
调用查找符号,但我无法确定返回的地址是指函数还是变量。有没有办法通过这个符号表来确定打字信息?
c - 堆栈上局部变量的 GCC 符号表
当然,在 C/C++ 程序中定义的每个变量的符号和类型信息都是可用的,否则调试器无法显示它们。但是如何访问这些信息?
有很多关于精灵的信息可用,但那是关于链接似乎只包含全局变量,而不是堆栈上的本地变量,即
在远程实时系统中(不是在 unix 下),我希望能够不时通过复制列表中的一些内存以及相关的变量名来查看它们,然后在 RT 系统中查看它们继续。
最好的办法是可以随时为任何变量引入转储,而无需预先在代码中添加一些语句。