科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道揭秘Linux内核调试器之内幕 (7)

揭秘Linux内核调试器之内幕 (7)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

命令以地址、偏移量和另一个 KDB 命令作为参数。它对链表中的每个元素反复执行作为参数的这个命令。所执行的命令以列表中当前元素的地址作为参数。

作者:Hariprasad Nellitheertha 来源:IBM 2007年11月6日

关键字: 内幕 调试器 内核 Linux

  • 评论
  • 分享微博
  • 分享邮件
其它命令

下面是在内核调试过程中非常有用的其它几个 KDB 命令。

id 命令以一个地址/符号作为参数,它对从该地址开始的指令进行反汇编。环境变量 IDCOUNT 确定要显示多少行输出。

ss 命令单步执行指令然后将控制返回给 KDB。该指令的一个变体是 ssb,它执行从当前指令指针地址开始的指令(在屏幕上打印指令),直到它遇到将引起分支转移的指令为止。分支转移指令的典型示例有 call、return 和 jump。

go 命令让系统继续正常执行。一直执行到遇到断点为止(如果已应用了一个断点的话)。

reboot 命令立刻重新引导系统。它并没有彻底关闭系统,因此结果是不可预测的。

ll 命令以地址、偏移量和另一个 KDB 命令作为参数。它对链表中的每个元素反复执行作为参数的这个命令。所执行的命令以列表中当前元素的地址作为参数。

示例

反汇编从例程 schedule 开始的指令。所显示的行数取决于环境变量 IDCOUNT:

[0]kdb> id schedule

执行指令直到它遇到分支转移条件(在本例中为指令 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
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章