您的位置:首页 > 运维架构 > Linux

Linux驱动调试手段:KDB

2013-05-24 15:53 281 查看

1.KDB介绍

KDB是Linux内核调试补丁,提供一种在系统能运行时对内核内存和数据结构进行检查的办法。它不允许进行源代码级别上的调试。可以添加额外的命令,给出该数据结构的标识或地址。

2.KDB操作

a.处理器单步执行。
b.执行到某条特定指令时停止。
c.当存取(或修改)某个特定的虚拟内存位置时停止。
d.当存取输入/输出地址空间中的寄存器时停止,通过进程ID对当前活动的任务和所有其他任务进行堆栈回溯跟踪。
e.对指令进行反汇编。
f.追击内存溢出。

3.KDB配置

参考其他教程

4.KDB激活

激活:
echo “1”> /proc/sys/kernel/kdb

取消激活:
echo “0”> /proc/sys/kernel/kdb

5.KDB命令

运行:
go:继续程序执行。
ss:单步执行程序。
ssb:执行到分支或函数调用时停止。

内存显示和修改
md:显示内存内容。
mdr:显示原始的内存内容。
mm:修改内存内容
mds:以符号的方式显示内存内容。
寄存器修改和显示
rd:显示寄存器内容。
rm:修改寄存器内容。
ef:显示异常帧。

断点
bp/b1:设置或显示断点。
bc/be:清除/激活断点。
bd:使断点无效。
bpa:设置或显示全局断点。
bph/bpha:设置硬件断点或显示所有断点。

堆栈
bt:显示调用堆栈。
btp:显示进程的堆栈。
bta:显示所有进程的堆栈。
btc:命令对每个活动CPU上正在运行的进程执行堆栈回溯。
其他命令
参考help。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: