調試Linux內核操做指南(withing kgdb)

kgdb在內核2.6.26中加入,用於調試內核。kdb是內建的內核調試器,由SGI開發。 網絡

二者差別是:數據結構

 

  • 使用kgdb須要兩個機器,經過網絡鏈接,其中客戶端使用gdb。而kdb能夠直接在目標機器上調試。
  • Kgdb支持C代碼級別調試,能夠識別內核數據結構,而kdb只能識別彙編級別。

  這裏兩臺機器(使用的是兩臺VBox的虛擬機),一個是目標機器(被調試內核的機器),另外一臺是開發機器(鏈接被調試內核的機器)。frontend

要使用kgdb,須要從新編譯下內核,先修改相關配置:spa

[*] Compile the kernel with debug infodebug

[*] KGDB: kernel debugger  ---> 調試

 [*]   KGDB_KDB: include kdb frontend for kgdb 開發

 

CONFIG_DEBUG_INFO選項使得編譯中生產調試信息。虛擬機

CONFIG_STRICT_KERNEL_RWX選項會阻止內核的某些斷點,因此禁止(4.15.15中並未看到此項)。並增長KDB。最後查看.config配置文件包含以下:it

CONFIG_FRAME_POINTER=y編譯

CONFIG_KGDB=y

CONFIG_KGDB_SERIAL_CONSOLE=y

CONFIG_KGDB_KDB=y

CONFIG_DEBUG_INFO=y

       而後進行編譯安裝,make –j2 && make modules_install && make install

1.   內核參數

 

在內核啓動參數中添加,表示啓動,經過串口ttyS0來實現kgdb調試。

 kgdbwait kgdboc=ttyS0,115200

相關文章
相關標籤/搜索