ubuntu系统下安装KGDB调试器及使用方法以及模块调

本文发布时间: 2019-Mar-22
内核调试可以通过printk, proc, strace及kgdb等调试方法调试,下面介绍内核源码级的调试工具kgdb的使用。kgdb 调试需要两台机器进行远程调试,一台开发机,一台目标机,通过串口通信,开发机使用gdb控制目标机的kgdb进行内核源码级调试。先从源安装systemtapsudo apg-get install systemta;. 由于ubuntu 桌面版默认没有安装kernel-debug-info,所以安装了systemtap后仍然不能够追踪内核信息,因此需要手动安装kernel-debug-info包。(1)查看当前内核版本$ uname -ar(2)下载对应内核版本的debug-info packagehttp://ddebs.ubuntu.com/pool/main/l/linux/这里下载linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb将下载好的kernel-debug-info包拷贝到目标机dpkg -i linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb安装成功 查看其安装目录地址:dpkg -L linux-image-3.0.0-15-generic-pae-dbgsym一般安装在 /usr/lib/debug/目录下面cd /usr/lib/debug进入该目录下面的./boot目录cd ./boot拷贝该目录下的 vmlinuz-3.2.0-23-generic-pae到开发机。在目标机加一条tcp串口。重启目标机,并修改其grub启动项,linux /boot/vmlinuz-2.6.34.1-kgdbroot=UUID=78727361-022c-4790-8d39-a17565a4e155 ro rootdelay=90quiet splash text kgdboc=ttyS1,115200 kgdbwait此时目标机处于启动等待状态开发机运行 gbd -q vmlinuz-3.2.0-23-generic-pae(之前拷贝过来的vm文件)进入gbd界面运行命令: target remote tcp:localhost:4555 (因为我用的是tcp串口,4555为端口号)。连接成功后,运行contue命令,目标机会继续进入运行状态。在目标机运行 echo -g > /proc/sysrq-trigger, 重新使目标机挂起,进入调试状态,开发机进入gdb命令行。因为当前内核使用了write protect 选项,不支持断点,需重新编译内核。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:11pm
栏目列表