我正在尝试了解.symtab
可重定位目标文件的设置类型。而且我知道,它包含有关静态变量的信息。但为什么?
将可重定位目标文件与其他文件链接所需要做的就是重新定位该静态变量的地址(当然还有其他一些,但对于静态变量无关紧要)。所以我们需要的只是重定位表,其中存储.rel.data
并包含重定位静态变量的所有信息,不是吗?
我正在尝试了解.symtab
可重定位目标文件的设置类型。而且我知道,它包含有关静态变量的信息。但为什么?
将可重定位目标文件与其他文件链接所需要做的就是重新定位该静态变量的地址(当然还有其他一些,但对于静态变量无关紧要)。所以我们需要的只是重定位表,其中存储.rel.data
并包含重定位静态变量的所有信息,不是吗?
但是对于调试来说,知道变量在哪里是非常有用的。
不确定您的编译器,但对于IBM AIX Compiler,默认设置是不向符号表添加静态变量。
但是,对于调试来说,gdb 知道静态变量包含什么以及相关符号非常有用,因此它们出现在那里是有意义的。