| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
1. 几种内核调试工具比较 网管u家u.bitsCN.com
kdb:只能在汇编代码级进行调试;
优点是不需要两台机器进行调试。
gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。 网管u家u.bitscn@com
kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试) 网管联盟bitsCN_com
使用kdb和gdb调试内核的方法相对比较简单,这里只描述如何使用kgdb来调试内核。 中国网管论坛bbs.bitsCN.com
2.软硬件准备
环境:
eloper(192.168.16.5 com1),一台测试机target(192.168.16.30 com2),都预装redhat 9;一根串口线 网管u家u.bitsCN.com
下载以下软件包:
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
网管联盟bitsCN@com
3.ok,开始 网管u家u.bitsCN.com
3.1 测试串口线 中国网管联盟bitsCN.com
物理连接好串口线后,使用一下命令进行测试,stty可以对串口参数进行设置 网管u家u.bitscn@com
在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 中国网管论坛bbs.bitsCN.com
3.2 安装与配置 中国网管论坛bbs.bitsCN.com
3.2.1 安装 中国网管论坛bbs.bitsCN.com
下载linux-2.4.23.tar.bz2,linux-2.4.23-kgdb-1.9.patch,gdbmod-1.9.bz2到developer的/home/liangjian目录 网管bitscn_com
*在developer机器上 中国网管联盟bitsCN.com
#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配置项中将以下三项编译进内核 网管下载dl.bitscn.com
KGDB: Remote (serial) kernel debugging with gdb
KGDB: Thread analysis
KGDB: Console messages through gdb
注意在编译内核的时候需要加上-g选项
#make dep;make bzImage
使用scp进行将相关文件拷贝到target上(当然也可以使用其它的网络工具) 网管联盟bitsCN@com
#scp arch/i386/boot/bzImage root@192.168.16.30:/boot/vmlinuz-2.4.23-kgdb
#scp System.map root@192.168.16.30:/boot/System.map-2.4.23-kgdb
#scp arch/i386/kernel/gdbstart root@192.168.16.30:/sbin
gdbstart为kgdb提供的一个工具,用于激活内核钩子,使内核处于调试状态 网管u家u.bitscn@com
|
0
|
评论加载中…