使用objdump看核心原始碼

2021-06-22 04:06:27 字數 922 閱讀 8223

1.  修改源**的頂層  makefile

cc =$(crosscom_pile)gcc            為

cc =$(crosscom_pile)gcc   -g

使成生的vmlinux中含有debug資訊

2.  所有生成   .o  的  rule  中再加一條     /*其他引數除了-c外抄生成.o檔案用的引數*/

cc   -e  -dd -c $< > /preprocessing/$(shell pwd)/$<

生成預處理檔案從這個檔案裡面能很容易找到  c  原始檔的巨集定義

3.  objdump -h vmlinux   > vmlinux.txt

顯示  linux 核心段資訊,如段的開始虛擬位址,段的長度

4.  objdump -s -l -z vmlinux > vmlinux.txt

反彙編  vmlinux  到vmlinux.txt, vmlinux.txt  含有彙編和  c 原始檔的混合**,看起來很方

便。而且能一步步看linux怎麼一步步執行的。

5.   objdump -s -l -z  -j ***x(section name)  vmlinux  > vmlinux.txt

反彙編  linux 核心段 ***x  到檔案  vmlinux.txt  中。

6.   objdump -x vmlinux > x.txt

vmliux中所有段的頭資訊,其中包口vmlinux的入口位址等

7.  objdump --debugging vmlinux > debugging.txt

很多有用的debug資訊,如函式名,結構體定義等

我覺的用根據以上資訊,ultraedit看很方便。尤其在vmlinux.txt中選中檔名,

用ultraedit右鍵的open能馬上開啟檔案,很方便。

如何看核心原始碼

在閱讀原始碼之前,還應知道linux核心原始碼的整體分布情況。現代的作業系統一般由程序管理 記憶體管理 檔案系統 驅動程式和網路等組成。linux核心原始碼的各個目錄大致與此相對應,其組成如下 假設相對於linux 2.4.23目錄 arch目錄包括了所有和體系結構相關的核心 它下面的每乙個子目錄都...

使用Vim Cscope看Linux原始碼

略可以用find命令生成,把一些不需要建立索引的目錄剔除掉,如 dir linux usr src kernels linux cscope files cscope.files find dir linux path dir linux arch path dir linux arch x86 p...

看QtDesigner原始碼

畢業有一年半了,很早就想著寫部落格,可是水平有限,表達能力也差好多,但是現在總結來說,好多東西都忘了,浪費了好多時間,所以開始寫東西吧。1.pro檔案檢視專案構成 template subdirs config qt subdirs src 樣板 模板 型板 就是乙個模板,然後我在data資料夾裡看...