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。