kgdb在內核2.6.26中加入,用於調試內核。kdb是內建的內核調試器,由SGI開發。 網絡
二者差別是:數據結構
這裏兩臺機器(使用的是兩臺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
在內核啓動參數中添加,表示啓動,經過串口ttyS0來實現kgdb調試。
kgdbwait kgdboc=ttyS0,115200