這個問題就比較專業了,linux核心除錯還是在除錯核心驅動的時候用過,涉及的程度不是特別深,但是可以說下大致的思路,linux雖然貴為作業系統,但是歸根到底還是一個程式,既然是程式就能用debug的方式去除錯,只不過由於環境的差異,使用的方法和工具不盡相同,在linux下面常見的除錯工具gdb,在windows上面更多的除錯工具是介面化的,直接對應的中間變數的數值以及申請記憶體的地址都會直觀的展示出來,在linux上主要是透過命令的方式檢視,開始會覺得很不習慣,覺得很深奧,其實就是命令的行的使用也就是常見的幾個命令。
回到正題linux核心除錯用的kgdb,一種專門針對linux核心的除錯工具,所謂的核心的除錯,主要還是在嵌入式板卡上用的比較多,需要掌握一個概念交叉編譯,這個是玩嵌入式的必備概念,通俗點講,在主機電腦上將程式編譯好,然後放在嵌入式板卡里面執行,在這就不一一舉例如何去執行,這種教科書般的教程隨手就能在網上獲取,現在只是把一些關鍵技術步驟或者細節點歸納幾條分享給大家:
1.生成的除錯庫以及驅動ko檔案都會比較大,所以準備的磁碟空間至少20G左右
2.需要讓核心支援支援kgdb除錯功能,需要開啟配置開關,正常的編譯核心用make menuconfig,進入kernel hacking一項
3.在編譯工程中注意檔案的備份,一旦生成有問題,可以拿著之前的版本進行恢復
4.linux核心的除錯其實就是vmlinux的除錯,在這涉及到一個很關鍵的概念,遠端除錯,核心的除錯一般採用串列埠連線的方式,現在linux應用遠端除錯用網路的居多
5.除錯核心,很多命令使用還是基於gdb完成,gdb的命令還是要熟悉
這個問題就比較專業了,linux核心除錯還是在除錯核心驅動的時候用過,涉及的程度不是特別深,但是可以說下大致的思路,linux雖然貴為作業系統,但是歸根到底還是一個程式,既然是程式就能用debug的方式去除錯,只不過由於環境的差異,使用的方法和工具不盡相同,在linux下面常見的除錯工具gdb,在windows上面更多的除錯工具是介面化的,直接對應的中間變數的數值以及申請記憶體的地址都會直觀的展示出來,在linux上主要是透過命令的方式檢視,開始會覺得很不習慣,覺得很深奧,其實就是命令的行的使用也就是常見的幾個命令。
回到正題linux核心除錯用的kgdb,一種專門針對linux核心的除錯工具,所謂的核心的除錯,主要還是在嵌入式板卡上用的比較多,需要掌握一個概念交叉編譯,這個是玩嵌入式的必備概念,通俗點講,在主機電腦上將程式編譯好,然後放在嵌入式板卡里面執行,在這就不一一舉例如何去執行,這種教科書般的教程隨手就能在網上獲取,現在只是把一些關鍵技術步驟或者細節點歸納幾條分享給大家:
1.生成的除錯庫以及驅動ko檔案都會比較大,所以準備的磁碟空間至少20G左右
2.需要讓核心支援支援kgdb除錯功能,需要開啟配置開關,正常的編譯核心用make menuconfig,進入kernel hacking一項
3.在編譯工程中注意檔案的備份,一旦生成有問題,可以拿著之前的版本進行恢復
4.linux核心的除錯其實就是vmlinux的除錯,在這涉及到一個很關鍵的概念,遠端除錯,核心的除錯一般採用串列埠連線的方式,現在linux應用遠端除錯用網路的居多
5.除錯核心,很多命令使用還是基於gdb完成,gdb的命令還是要熟悉