一、簡介
kgdb是一種源碼級的linux內核調試器。使用kgdb調試內核時,需要結合gdb一起使用,使用他們可以對內核進行單步調試,設置斷點,觀察變量、寄存器的值等與應用調試相關的功能。然而也有其限制條件,將在接下來kgdb調試器原理來講述,本文僅簡單介紹使用Kgbd的流程。
https://kgdb.wiki.kernel.org/index.php/Main_Page
二、安裝配置
1)打開kgdb與kdb配置選項,重新編譯內核
https://www.kernel.org/pub/linux/kernel/people/jwessel/kdb/CompilingAKernel.html#CompileKGDB
http://blog.chinaunix.net/uid-23366077-id-4711134.html
http://www.CUOXin.com/274914765QQ/p/4978999.html
2)啟動項設置,分別對server和client的啟動文件:/boot/grub/grub.conf,做如下修改
server:
kgdboc=ttyS1,115200client:
kgdboc=ttyS1,115200 kgdbwait3)串口設置
http://www.CUOXin.com/274914765qq/p/4992993.html
三、使用實例
1)內核調試
http://blog.chinaunix.net/uid-20672257-id-2936794.html
2)模塊調試
http://blog.chinaunix.net/uid-20672257-id-2936794.html
http://www.linuxidc.com/Linux/2013-01/77969.htm
四、常見問題
1)以“-O -g”編譯內核
編譯內核之前請注意:默認的Linux內核的編譯都以-O2的優化級別進行。在這個優化級別之下,編譯器要對內核中的某些代碼的執行順序進行改動,所以在調試時會出現程序運行與代碼順序不一致的情況。可以把Makefile中的-O2選項改為-O,但不可去掉-O,否則編譯會出問題。為了使編譯后的內核帶有調試信息,注意在編譯內核的時候需要加上-g選項。 不過,當選擇"Kernel debugging->Compile the kernel with debug info"選項后配置系統將自動打開調試選項。另外,選擇"kernel debugging with remote gdb"后,配置系統將自動打開"Compile the kernel with debug info"選項。
2)kdb與kgdb模式相互切換
http://www.zeuux.com/blog/content/3736/
參考:http://blog.chinaunix.net/uid-25538637-id-261329.html
新聞熱點
疑難解答