KGDB debug on linux
2016-09-01 13:48
211 查看
1. 编译内核&module
make menuconfig : Kernel Hacking-->
Compile the kernel with frame pointers勾选
KGDB:kernel debugging with remote gdb勾选
Write protect kernel read-only data structures不勾选
make
make modules_install
make install
client机运行应用程序,要调试的内核模块放到server机上,client机控制server机上内核模块的运行,client机执行gdb vmlinux。
2. 确定串口 dmesg|grep tty
dmesg|grep tty 查看新增的串口名称,假设为ttyS0
测试 server控制台输入 cat /dev/ttyS0
client控制台输入 echo hello > /dev/ttyS0
server上如果能看到输入的hello,说明串口通讯正常
3. 在/etc/default/grub kernel行末添加kgdbwait kgdboc=ttyS0,115200
4. 内核模块调试
server端:
cat /sys/module/<module name>/sections/.text
0xda234567
得到模块的.text段地址
echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc
注册kgdboc 后, 以后用魔幻字母 "g" 控制呼出kgdb
echo "g" > /proc/sysrq-trigger
server系统进入等待状态
client端:
cd /usr/src/linux
gdb vmlinux
set remotebaud 115200
target remote /dev/ttyS0
add-symbol-file /path to ko/xxxx.ko 0xda234567
add-symbol-file 参数1是client上module文件的位置,参数2是得到的server端上module的.text段的地址
break func1
coutinue
server会运行
make menuconfig : Kernel Hacking-->
Compile the kernel with frame pointers勾选
KGDB:kernel debugging with remote gdb勾选
Write protect kernel read-only data structures不勾选
make
make modules_install
make install
client机运行应用程序,要调试的内核模块放到server机上,client机控制server机上内核模块的运行,client机执行gdb vmlinux。
2. 确定串口 dmesg|grep tty
dmesg|grep tty 查看新增的串口名称,假设为ttyS0
测试 server控制台输入 cat /dev/ttyS0
client控制台输入 echo hello > /dev/ttyS0
server上如果能看到输入的hello,说明串口通讯正常
3. 在/etc/default/grub kernel行末添加kgdbwait kgdboc=ttyS0,115200
4. 内核模块调试
server端:
cat /sys/module/<module name>/sections/.text
0xda234567
得到模块的.text段地址
echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc
注册kgdboc 后, 以后用魔幻字母 "g" 控制呼出kgdb
echo "g" > /proc/sysrq-trigger
server系统进入等待状态
client端:
cd /usr/src/linux
gdb vmlinux
set remotebaud 115200
target remote /dev/ttyS0
add-symbol-file /path to ko/xxxx.ko 0xda234567
add-symbol-file 参数1是client上module文件的位置,参数2是得到的server端上module的.text段的地址
break func1
coutinue
server会运行
相关文章推荐
- Using KGDB debug linux kernel and kernel module
- Enable JMX on tomcat and debug with eclipse(linux)
- Debug a NIC driver in linux(kernel version 2.4.20-8) which running on VMware workstation version 4.5.2
- Linux Systemcall By INT 0x80、Llinux Kernel Debug Based On Sourcecode
- Azure Debug for Web App/Web App On Linux
- Pycharm远程调试之Docker debug(三) -- docker on linux
- zfs on linux 开启debug模式
- How to Debug Java -JNI using GDB on linux ?
- debug python step by step on linux ubuntu with ipdb
- debug on Linux
- HOWTO: install kernel debuginfo packages on SUSE Linux Enterprise Server 11
- [转] Intel release open source OpenGL API-based 3D graphics drivers for Linux on 965 Express chipset
- Time with Time-zone Programming on Linux
- (转载)使用kgdb调试linux内核及内核模块
- 关于安装Postfix(2.2.9) and Cyrus(2.3.3) on Linux(FC4)
- Kernel Memory Layout on ARM Linux
- IBM Linux on Power正式对外开放
- 使用kgdb调试linux内核及内核模块
- Integrated Development Environments / RAD tools / GUI-builders on Linux
- radius configuration on Linux