linux 程式的段學習總結

2021-06-02 06:20:21 字數 733 閱讀 1377

linux程式的段陸陸續續接觸過一些,今天適當的總結一下,時間倉促,總結的比較零散。

linux 段:

text:已編譯程式的機器**。

.rodata:唯讀資料。printf中的格式串,或者開關語句的跳轉表。

data:已初始化的全域性變數。

bss:未初始化的全域性變數。

symtab:符號表。

注意:1、如果定義乙個全域性變數,int i = 0;它被初始化為0,但是,它卻不是放在data段中的,而是放在bss段中的。因為編譯器可能會做一些優化,如果初始化為0,則它會將它等同於未初始化的變數。這樣的可能要求他會將所有未初始化的全域性變數(bss段)初始化為0。——但是這個可能會和編譯器有關係。

2、對於static全域性變數,它在符號表中有乙個屬性表示他是local的,不是global。local的符號式不允許被其他的檔案引用的。

3、static定義的區域性變數,編譯器會把它作為static全域性變數來處理。它在符號表中是出現的(區域性變數是不出現的)。唯一不同的是,它會把它在符號表中的名字改掉,一般會增加乙個字尾:「.1788」。用這種方法來防止和其他的全域性變數重名。而且也可以防止對它的呼叫。

4、段是有對齊的。如果定義乙個char字元,會發現它有時會增加四個位元組,之後定義,段大小便不再增加。

5、檢視程式段的工具包括:readelf,objdump(加上-t可以檢視變數屬於哪個段),size(可以檢視各個段的大小。)

程式的各個段

section 結構 sections region phdr fill secname 段名 contents 決定哪些內容存放在此段 start 本段的連線位址 實際執行位址 at ldadr 儲存位址 載入的位址 例子u boot.lds 根據上面的section的介紹,雖能大體看懂,但是還是...

Linux的學習總結

虛擬機器管理軟體,虛擬各種計算機硬體,可以安裝作業系統 cent os 6.5 安裝 需要通過bios設定cpu的虛擬化技術 cd 切換目錄 vi 命令列的文字編輯器,對檔案進行編輯 ls list 檢視當前資料夾下所有檔案 ll 檢視檔案詳細資訊 以d開頭的是資料夾,以 開頭的是乙個檔案,以l開頭...

小偷程式的學習總結

小偷程式由兩部分組成,一是訪問,二是匹配。訪問有兩部分組成,一是匿名訪問,二是登陸訪問。匿名訪問由兩部分組成,一是瀏覽器訪問,二是爬蟲訪問。登陸訪問由兩部分組成,一是普通登陸,二是ssl登陸。登陸一般是,你輸入使用者名稱和密碼,選擇記住密碼,點選登陸 給你建立cookie。下次進入 把cookie ...