歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

ARM ELF 文件格式常見段名稱及自定義段

如果用arm-linux-gcc編譯出來的適用於ARM架構的程序:

除了最常見的為 .text, .data, .bss 這 3 個段之外,還有其它的一些常見段,如下所示:

.strtab : String Table 字符串表,用於存儲 ELF 文件中用到的各種字符串。

.symtab : Symbol Table 符號表,從這裡可以所以文件中的各個符號。

.shstrtab : 是各個段的名稱表,實際上是由各個段的名字組成的一個字符串數組。

.hash : 符號哈希表。

.debug_line : 調試時的行號表,即源代碼行號與編譯後指令的對應表。

.dynamic : 動態鏈接信息。

.debug : 調試信息。

.comment : 存放編譯器版本信息,比如 "GCC:(GNU)4.2.0"。

.plt 和 .got : 動態鏈接的跳轉表和全局入口表。

.init 和 .fini : 程序初始化和終結代碼段。

.rodata1 : Read Only Data,只讀數據段,存放字符串常量,全局 const 變量,該段和 .rodata 一樣。

--------------------------------------------------------------------------------

由上可見,這些段的名字前都有一個 '.' 點符號前綴,其義表示這些段的名字為系統所保留。應用程序可以使用非系統保留的名字作為自己的自定義段名,但是自定義的段名就不能使用 '.' 符號作為前綴,否則容易和系統保留的段名沖突。

Copyright © Linux教程網 All Rights Reserved