格式:
readelf elf-file(s)
功能:
用於顯示讀取elf檔案中資訊, 也可以用man命令窺其全貌。它用來顯示乙個或者多個elf格式的目標檔案的資訊,可以通過它的選項來控制顯示哪些資訊。
這裡的elf-file(s)就表示那些被檢查的檔案。可以支援32位,64位的elf格式檔案,也支援包含elf檔案的文件
關於elf檔案:
elf檔案型別:
a)可重定位檔案:使用者和其他目標檔案一起建立可執行檔案或者共享目標檔案,例如lib*.a檔案。
b)可執行檔案:用於生成程序映像,載入記憶體執行,例如編譯好的可執行檔案a.out。
c)共享目標檔案:用於和其他共享目標檔案或者可重定位檔案一起生成elf目標檔案或者和執行檔案一起建立程序映像,例如lib*.so檔案。
elf檔案作用:
elf檔案參與程式的連線(建立乙個程式)和程式的執行(執行乙個程式),所以可以從不同的角度來看待elf格式的檔案:
a)如果用於編譯和鏈結(可重定位檔案),則編譯器和鏈結器將把elf檔案看作是節頭表描述的節的集合,程式頭表可選。
b)如果用於載入執行(可執行檔案),則載入器則將把elf檔案看作是程式頭表描述的段的集合,乙個段可能包含多個節,節頭錶可選。
c)如果是共享檔案,則兩者都含有。
elf檔案總體組成:
型別相關就是前面說的那個型別。
選項(以短、長形式給出):
-a :--all 顯示全部資訊,等價於 -h -l -s -s -r -d -v -a -i
-h :--file-header 顯示elf檔案開始的檔案頭資訊.
-l :--program-headers ;--segments 顯示程式頭(段頭)資訊(如果有的話)。
-s :--section-headers ;--sections 顯示節頭資訊(如果有的話)。
-g :--section-groups 顯示節組資訊(如果有的話)。
-t :--section-details 顯示節的詳細資訊(-s的)。
-s :--syms ;--symbols 顯示符號表段中的項(如果有的話)。
-e :--headers 顯示全部頭資訊,等價於: -h -l -s
-n :--notes 顯示note段(核心注釋)的資訊。
-r :--relocs 顯示可重定位段的資訊。
-u :--unwind 顯示unwind段資訊。當前只支援ia64 elf的unwind段資訊。
-d :--dynamic 顯示動態段的資訊。
-v :--version-info 顯示版本段的資訊。
-a :--arch-specific 顯示cpu構架資訊。
-d :--use-dynamic 使用動態段中的符號表顯示符號,而不是使用符號段。
-x :--hex-dump=以16進製制方式顯示指定段內內容。number指定段表中段的索引,或字串指定檔案中的段名。
-w[liaprmffsor]或者
-debugdump[=line,=info,=abbrev,=pubnames,=aranges,
=macro,=frames,=frames-interp,=str,=loc,=ranges] 顯示除錯段中指定的內容。
-i :--histogram 顯示符號的時候,顯示bucket list長度的柱狀圖。
-v :--version 顯示readelf的版本資訊。
-h :--help 顯示readelf所支援的命令列選項。
-w :--wide 寬行輸出。
舉例:main.c中的內容如下:
#include void my_print()
int main ()
生成a.out檔案,用readelf命令讀取一下,得到:
這裡,可見可執行檔案的elf檔案,其型別為exec(可執行檔案),並且由此可見檔案的體系結構為intel 80386。
Linux命令之readelf詳解
date 2017 10 28 23 31 參考 r eadelf命令用來顯示乙個或者多個elf格式的目標檔案的資訊,可以通過它的選項來控制顯示哪些資訊。這裡的elf file s 就表示那些被檢查的檔案。可以支援32位,64位的elf格式檔案,也支援包含elf檔案的文件 這裡一般指的是使用ar命令...
linux中的apachectl是什麼命令
apachectl是apache http伺服器的前端程式。其設計意圖是幫助管理員控制apachehttpd後台守護程序的功能。apachectl指令碼有兩種操作模式。首先,作為簡單的httpd的前端程式,設定所有必要的環境變數,然後啟動httpd,並傳遞所有的命令列引數。其次,作為sysv初始化指...
Linux下shell指令碼中的read命令
read命令作用 從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給shell變數 引數 a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。d 後面跟乙個標誌符,其實只有其後的第乙個字元有用,作為結束的標誌,會舉例說 明。p 後面跟提示資訊,即在輸入前列印提示資訊。e ...