Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

KDB内核调试手册 PDF 下载


分享到:
时间:2021-11-27 15:56来源:http://www.java1234.com 作者:转载  侵权举报
KDB内核调试手册 PDF 下载
失效链接处理
KDB内核调试手册  PDF 下载


本站整理下载:
提取码:0bfi 
 
 
相关截图:
 
主要内容:

一、入门
KDB 项目是由 Silicon Graphics 维护的,您需要从它的 FTP 站点下载与内
核版本有关的补丁。(在编写本文时)可用的最新 KDB 版本是 4.2。您将需要下
载并应用两个补丁。
一个是“公共的”补丁,包含了对通用内核代码的更改,另一个是特定于体
系结构的补丁。补丁可以 bz2 文件获取。例如,在运行 2.4.20 内核的 x86 机器
上,您会需要 kdb-v4.2-2.4.20-common-1.bz2 和 kdb-v4.2-2.4.20-i386-1.bz2。
这里所提供的所有示例都是针对 i386 体系结构和 2.4.20 内核的。您将需要
根据您的机器和内核版本进行适当的更改。您还需要拥有 root 许可权以执行这
些操作。
将文件复制到/usr/src/linux 目录中并用 bzip2 解压缩补丁文件:
#bzip2 -d kdb-v4.2-2.4.20-common-1.bz2
#bzip2 -d kdb-v4.2-2.4.20-i386-1.bz2
您将获得 kdb-v4.2-2.4.20-common-1 和 kdb-v4.2-2.4-i386-1 文件。现在,应
用这些补丁:
#patch -p1 <kdb-v4.2-2.4.20-common-1
#patch -p1 <kdb-v4.2-2.4.20-i386-1
这些补丁应该干净利落地加以应用。查找任何以.rej 结尾的文件。这个扩展
名表明这些是失败的补丁。如果内核树没问题,那么补丁的应用就不会有任何问
题。
接下来,需要构建内核以支持 KDB。第一步是设置 CONFIG_KDB 选项。使用您
喜欢的配置机制(xconfig 和 menuconfig 等)来完成这一步。转到结尾处的
“Kernel hacking”部分并选择“Built-in Kernel Debugger support”选项。
您还可以根据自己的偏好选择其它两个选项。选择“Compile the kernel with
frame pointers”选项(如果有的话)则设置 CONFIG_FRAME_POINTER 标志。这
将产生更好的堆栈回溯,因为帧指针寄存器被用作帧指针而不是通用寄存器。
您还可以选择“KDB off by default”选项。这将设置 CONFIG_KDB_OFF 标
志,并且在缺省情况下将关闭 KDB。我们将在后面一节中对此进行详细介绍。
保存配置,然后退出重新编译内核。建议在构建内核之前执行“make clean”。
用常用方式安装内核并引导它。
初始化并设置环境变量
您可以定义将在 KDB 初始化期间执行的 KDB 命令。需要在纯文本文件
kdb_cmds 中定义这些命令,该文件位于 Linux 源代码树(当然是在打了补丁之
后)的 KDB 目录中。该文件还可以用来定义设置显示和打印选项的环境变量。文
件开头的注释提供了编辑文件方面的帮助。使用这个文件的缺点是,在您更改了
文件之后需要重新构建并重新安装内核。
激活 KDB
如果编译期间没有选中 CONFIG_KDB_OFF,那么在缺省情况下 KDB 是活动的。
否则,您需要显式地激活它---通过在引导期间将 kdb=on 标志传递给内核或者
通过在挂装了 /proc 之后执行该工作:
#echo "1" >/proc/sys/kernel/kdb
倒过来执行上述步骤则会取消激活 KDB。也就是说,如果缺省情况下 KDB 是
打开的,那么将 kdb=off 标志传递给内核或者执行下面这个操作将会取消激活
KDB:
#echo "0" >/proc/sys/kernel/kdb
在引导期间还可以将另一个标志传递给内核。kdb=early 标志将导致在引导
过程的初始阶段就把控制权传递给 KDB。如果您需要在引导过程初始阶段进行调
试,那么这将有所帮助。
调用 KDB 的方式有很多。如果 KDB 处于打开状态,那么只要内核中有紧急情
况就自动调用它。按下键盘上的 PAUSE 键将手工调用 KDB。调用 KDB 的另一种方
式是通过串行控制台。
当然,要做到这一点,需要设置串行控制台(请参阅参考资料以获取这方面
的帮助)并且需要一个从串行控制台进行读取的程序。按键序列 Ctrl-A 将从串
行控制台调用 KDB。
二、KDB 命令
KDB 是一个功能非常强大的工具,它允许进行几个操作,比如内存和寄存器
修改、应用断点和堆栈跟踪。根据这些,可以将 KDB 命令分成几个类别。下面是
有关每一类中最常用命令的详细信息。
 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐