码迷,mamicode.com
首页 > 其他好文 > 详细

symbol table

时间:2017-08-23 13:52:59      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:res   min   语义分析   链接器   语法分析   deb   词法分析   符号   动态链接   

1 链接器是被符号表表所驱动的,换句话说,是被部分符号表所驱动的

这部分的符号表单独放在.dynsym段中,strip elf的符号表的时候,这个段是不会被strip的,因为动态链接的时候会用到。

.dynsym中有的符号在.symtab中都有。

2 .symtab符号表

2.1 .symtab符号表的创建

是编译器在分析阶段,即词法分析、语法分析和语义分析阶段生成的符号表。

2.2 gdb视角

当没有.debugxxx symbol table的时候,在gdb看来这个.symtab是minimal symbol。

虽然它提供的调试信息不多,但是,至少它可以帮助定位一个函数的起始位置,帮助设置断点。因为提供的信息有限,源码调试是肯定不行的,但是可以进行汇编级别的跟踪。

gdb读取.symtab之后,会按照address排序,这样由address到symbol就很方便了,另外,还会创建一个 hash table,这样用symbol找address就方便了。

3 dwarf debug info

gdb在读取了.symtab之后,如果有dwarf debug info的话,还会去读取该信息,然后创建file symbol table,这样的话,就可以进行源码调试了。

 

symbol table

标签:res   min   语义分析   链接器   语法分析   deb   词法分析   符号   动态链接   

原文地址:http://www.cnblogs.com/hustdc/p/7417456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!