ELF中的section主要提供给Linker用的, 而segment提供给Loader用. Linker需要关心.text, .rel.text, .data, .rodata等等, 一个重点是link时要做relocation. 而 Loader 只需要知道 Read/睁备Write/Execute. a.out格式没有这种区槐谨分, 我想ELF这么做提供了更多的灵活性
解释:
再次读Map,首先读取map的size = 0x01 , 接着
后续: 读一个可变Int 以作为 numSortFields, 如图会读到 0x00 , 如果此值不为0, 会对这一字段做进一步解析()。 后面会是文件尾。文件尾长度为16个字节, 依次为 尾Magic, 值为CODEC_MAGIC的反码( 0xc028 93e8 ) 接着会读一个int的 algorithmID 值 0x0000 0000 。胡亮首 接下来会读一个long类型的checksum 0x0000 0000 e440 e97d 最后会剩键让下一个 0x0a
回到segment_3文件裤数。
接下来会依次读:
一个Long的 delGen , 值 0x ff ffff ffff ffff ff , 再读一个Int的 delCount ,值为 0x00 0000 00
一个Long的 fieldInfosGen 值为 0xff ffff ffff ffff ff . 一个Long的 dvGen 值为 0x ff ffff ffff ffff ff
一个Int的 softDelCount, 值为 00 0000 00
后会就是文件尾,和 _0.si 文件格式一致,请参考此块文件内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)