引用:http://www.qqread.com/linux/2006/08/y964194061.html
作者:胡风华
杂项
id:指令反汇编
格式:id <vaddr>
从vaddr开始的地址反汇编指令。
cpu:切换到另一个CPU
格式:cpu <cpunum>
这条命令仅仅在SMP结构下有用,它切换到由cpunum指定的CPU。
ps:显示所有活动的进程
格式:ps
显示当前的活动的进程。包括pid、父进程pid、CPU号、当前状态,以及对应的线程。
reboot:重新启动机器
格式:reboot
在某些情况下,内核无法返回到正常工作状态,这时可以利用reboot重新启动机器。注意在重启机器前,它不进行任何状态保存的工作。
sections:列出内核中所有已知的段的信息
格式:sections
列出模块和内核的所有已知的段的信息。首先是模块信息,最后是内核信息。包括模块名和一个或者多个段的信息。段信息包括段名、段起始地址、段结束地址和段标识。本命令仅仅是为外部调试器而设立的。
sr:激活SysRq代码,也就是调用MAGIC_SYSRQ函数
格式:sr <sysrq key>
将sysrq key字符作为参数传递给SysRq函数进行处理,就像你已经键入了SysRq键和该字符一样。如果要使用这个命令,需要在配置内核时,选择Magic SysRq Key。然后在新内核启动后,使用如下命令激活SysRq功能。
#echo “1” > /proc/sys/kernel/sysrq
这是一个功能强大的命令,它使得在kdb中可以使用操作系统提供的SysRq处理函数。
lsmod:列出内核中加载的所有模块
格式:lsmod
显示所有模块的信息。包括模块名、模块大小、模块结构地址、引用计数,以及被哪个模块所引用。
rmmod:卸载一个模块
格式:rmmod <modname>
将由modname指定的模块从内核中卸载。
ll:对链表中的每个元素重复执行命令
格式:ll <addr> <link-offset> <cmd>
它对以地址addr开头的链表的头link-offset个元素,重复执行cmd命令。
help和?:显示帮助信息。
格式:help 或者?
显示kdb的命令以及简单的用法。
提高调试效率
kdb是一个强大的内核调试工具,gdb需要两台机器通过串口才能进行调试,而kdb只需要一台机器即可进行调试,对于普通用户来说,是非常方便的。对于编写内核程序(譬如可加载模块)的程序员来说,kdb提供的这些命令使得调试工作难度大大降低,使得调试效率得以提高。另外对于内核感兴趣的人可以使用kdb来查看内核的数据结构和运行状态,从而加深对内核的理解。不足之处是kdb无法提供源码级的调试,要求程序员有一定的汇编程序基础。但总的来说,kdb提供了一种强有力的内核调试手段,笔者在开发内核模块时,使用kdb进行调试,在较短的时间内完成了调试任务。
更多内容请看Linux集群技术、体验Linux的音影世界、Linux驱动大全专题,或进入讨论组讨论。
作者:胡风华
杂项
id:指令反汇编
格式:id <vaddr>
从vaddr开始的地址反汇编指令。
cpu:切换到另一个CPU
格式:cpu <cpunum>
这条命令仅仅在SMP结构下有用,它切换到由cpunum指定的CPU。
ps:显示所有活动的进程
格式:ps
显示当前的活动的进程。包括pid、父进程pid、CPU号、当前状态,以及对应的线程。
reboot:重新启动机器
格式:reboot
在某些情况下,内核无法返回到正常工作状态,这时可以利用reboot重新启动机器。注意在重启机器前,它不进行任何状态保存的工作。
sections:列出内核中所有已知的段的信息
格式:sections
列出模块和内核的所有已知的段的信息。首先是模块信息,最后是内核信息。包括模块名和一个或者多个段的信息。段信息包括段名、段起始地址、段结束地址和段标识。本命令仅仅是为外部调试器而设立的。
sr:激活SysRq代码,也就是调用MAGIC_SYSRQ函数
格式:sr <sysrq key>
将sysrq key字符作为参数传递给SysRq函数进行处理,就像你已经键入了SysRq键和该字符一样。如果要使用这个命令,需要在配置内核时,选择Magic SysRq Key。然后在新内核启动后,使用如下命令激活SysRq功能。
#echo “1” > /proc/sys/kernel/sysrq
这是一个功能强大的命令,它使得在kdb中可以使用操作系统提供的SysRq处理函数。
lsmod:列出内核中加载的所有模块
格式:lsmod
显示所有模块的信息。包括模块名、模块大小、模块结构地址、引用计数,以及被哪个模块所引用。
rmmod:卸载一个模块
格式:rmmod <modname>
将由modname指定的模块从内核中卸载。
ll:对链表中的每个元素重复执行命令
格式:ll <addr> <link-offset> <cmd>
它对以地址addr开头的链表的头link-offset个元素,重复执行cmd命令。
help和?:显示帮助信息。
格式:help 或者?
显示kdb的命令以及简单的用法。
提高调试效率
kdb是一个强大的内核调试工具,gdb需要两台机器通过串口才能进行调试,而kdb只需要一台机器即可进行调试,对于普通用户来说,是非常方便的。对于编写内核程序(譬如可加载模块)的程序员来说,kdb提供的这些命令使得调试工作难度大大降低,使得调试效率得以提高。另外对于内核感兴趣的人可以使用kdb来查看内核的数据结构和运行状态,从而加深对内核的理解。不足之处是kdb无法提供源码级的调试,要求程序员有一定的汇编程序基础。但总的来说,kdb提供了一种强有力的内核调试手段,笔者在开发内核模块时,使用kdb进行调试,在较短的时间内完成了调试任务。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Linux集群技术 (8375篇文章)
- 体验Linux的音影世界 (8047篇文章)
- Linux驱动大全 (8847篇文章)
- Linux下的路由的配置与应用 (11847篇文章)
- Linux命令简介 (9900篇文章)
- Linux防火墙 (9727篇文章)
- Linux日志专题 (8501篇文章)
- Linux服务器的安全性能 (20483篇文章)
- 全面解析 Linux2.6内核 (606篇文章)
- 揭秘Linux内存管理 (8111篇文章)
- 实用技巧:配置Linux操作系统环境变量 (30次浏览)
- 安装qmail全套功略 (18次浏览)
- TurboLinux 入门教程:第七课 TurboLinux简介 (18次浏览)
- Linux系统管理员秘技:用快捷命令一招制胜 (18次浏览)
- Linux系统命令分类详解 (1) (18次浏览)
- Linux下使用aMsn详解 (18次浏览)
- 你会在Linux下用POP3收Web电子邮箱吗? (18次浏览)
- 在Linux中用三款工具轻松制作网页 (18次浏览)
- Linux上的偷窺裝置 (1394的使用) (18次浏览)
- 深入浅出分析Linux内核漏洞的问题 (18次浏览)



