其它命令
下面是在内核调试过程中非常有用的其它几个 KDB 命令。
id 命令以一个地址/符号作为参数,它对从该地址开始的指令进行反汇编。环境变量 IDCOUNT 确定要显示多少行输出。
ss 命令单步执行指令然后将控制返回给 KDB。该指令的一个变体是 ssb,它执行从当前指令指针地址开始的指令(在屏幕上打印指令),直到它遇到将引起分支转移的指令为止。分支转移指令的典型示例有 call、return 和 jump。
go 命令让系统继续正常执行。一直执行到遇到断点为止(如果已应用了一个断点的话)。
reboot 命令立刻重新引导系统。它并没有彻底关闭系统,因此结果是不可预测的。
ll 命令以地址、偏移量和另一个 KDB 命令作为参数。它对链表中的每个元素反复执行作为参数的这个命令。所执行的命令以列表中当前元素的地址作为参数。
示例
反汇编从例程 schedule 开始的指令。所显示的行数取决于环境变量 IDCOUNT:
执行指令直到它遇到分支转移条件(在本例中为指令 jne)为止:
[0]kdb> ssb
0xc0105355 default_idle+0x25: cli
0xc0105356 default_idle+0x26: mov 0x14(%edx),%eax
0xc0105359 default_idle+0x29: test %eax, %eax
0xc010535b default_idle+0x2b: jne 0xc0105361 default_idle+0x31 |