使用kgdb调试linux内核及内核模块

http://tech.ddvip.com   2006年11月20日    社区交流

本文详细介绍使用kgdb调试linux内核及内核模块

  1. 几种内核调试工具比较

  kdb:只能在汇编代码级进行调试;

  优点是不需要两台机器进行调试。

  gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。

  kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试)

  使用kdb和gdb调试内核的方法相对比较简单,这里只描述如何使用kgdb来调试内核。

  2.软硬件准备

  环境:

  eloper(192.168.16.5 com1),一台测试机target(192.168.16.30 com2),都预装redhat 9;一根串口线

  下载以下软件包:

  linux内核2.4.23     linux-2.4.23.tar.bz2

  kgdb内核补丁1.9版    linux-2.4.23-kgdb-1.9.patch

  可调试内核模块的gdb   gdbmod-1.9.bz2

  3.ok,开始

  3.1 测试串口线

  物理连接好串口线后,使用一下命令进行测试,stty可以对串口参数进行设置

  在developer上执行:

  stty ispeed 115200 ospeed 115200 -F /dev/ttyS0

  echo hello > /dev/ttyS0

  在target上执行:

  stty ispeed 115200 ospeed 115200 -F /dev/ttyS1

  cat /dev/ttyS1

  串口线没问题的话在target的屏幕上显示hello

  3.2 安装与配置

  3.2.1 安装

  下载linux-2.4.23.tar.bz2,linux-2.4.23-kgdb-1.9.patch,gdbmod-1.9.bz2到developer的/home/liangjian目录

  *在developer机器上

#cd /home/liangjian
#bunzip2 linux-2.4.23.tar.bz2
#tar -xvf linux-2.4.23.tar
#bunzip2 gdbmod-1.9.bz2
#cp gdbmod-1.9 /usr/local/bin
#cd linux-2.4.23
#patch -p1 < ../linux-2.4.23-kgdb-1.9.patch
#make menuconfig

  在Kernel hacking配置项中将以下三项编译进内核

责编:豆豆技术应用

正在加载评论...