$ cd /usr/src/sys/compile/MYKERNEL/您需要通过发出以下命令来验证不同模块或文件之间的依赖关系:
$ make depend此时,应构建内核并安装新内核映像,如下所示:
$ make
$ make install构建操作成功之后,根目录中的内核映像被新构建的内核映像覆盖;旧的内核映像保存为 kernel.old。
调试内核
开始之前,请确保已使用零调制解调器电缆将开发计算机和目标计算机连接起来。
编译完成之后,将 /usr/src/sys/compile/MYKERNEL/kernel.debug 内核映像从开发计算机复制到目标计算机。由于需要调试新 kernel.debug 映像,您必须使用 kernel.debug 映像重新启动目标计算机。
启动计算机时发出以下命令以进入调试器模式:
load kernel.debug
boot -d将启动调试器界面,允许您从开发计算机上开始调试。输入:
ddb> gdb您只需键入 s (step) 即可立刻进入下一步。要启动内核调试,请打开开发计算机上的 emacs 编辑器。它允许您打开 kgdb 实用程序;只有在 emacs 中 才能逐行进行内核调试。打开 emacs 编辑器之后,使用您希望调试的 kernel.debug 映像加载 gdb,并且使用 -k 选项进行内核调试。在 emacs 编辑器中显示 kgdb 提示符。要启动远程调试会话,请输入:
(kgdb) target remote /dev/cuaa0故障排除
为了设置调试环境,拥有正确的零调制解调器电缆是非常重要的。本文讨论了 25 针零调制解调器电缆。如果您希望使用 9 针零调制解调器电缆,请参见参考资料部分以了解有关零调制解调器设置的详细信息。
在远程调试开始时,您可能遇到 Ignoring packet error... 错误。该错误表示您的开发计算机和目标计算机具有不同的波特率。计算机的波特率是指每秒传输的符号数目。波特率与比特率可能并不相同,因为一个符号可能包含两个以上的状态。需要为两台计算机设置相同的波特率。使用以下命令可以实现这一目标:
set baudrate 9600结束语
使用远程内核调试替代传统内核调试有许多优势。系统的性能根本不会受到影响,因为您是在开发计算机上对系统进行远程调试(每次调试一个映像)。您可以调试尽可能多的内核映像(位于目标计算机上),一旦调试开始,它对于用户来说就是透明的。如果 gdb 因出现问题而失去响应或终止,则启动新的 gdb 实例并使用 target remote 命令连接到 kgdb。
相关专题
- FreeBSD系统安全管理 (8828篇文章)
- 全面解析 Linux2.6内核 (607篇文章)
- 热门通信技术专区 (2017篇文章)
- 通信技术专题 (2017篇文章)
- FreeBSD使用教程 (6592篇文章)
- Freebsd频道 (698篇文章)
- FreeBSD系统的使用 (96篇文章)
- Freebsd优化/安全 (86篇文章)
- Freebsd开发/调试 (69篇文章)
- FreeBSD系统安装与配置之准备篇 (1753次浏览)
- FreeBSD入门安装及汉化 (1472次浏览)
- FreeBSD下安装GNOME桌面 (971次浏览)
- FreeBSD 5.0硬盘安装指南 (707次浏览)
- freebsd5.2.1上安装vmware 3.2.1 (610次浏览)
- FreeBSD 5.1安装VMware全部过程 (571次浏览)
- FreeBSD连载(72):设置和使用DHCP (563次浏览)
- 使用FreeBSD的原因 (506次浏览)
- FreeBSD系统终极安装手册(图) (474次浏览)
- FreeBSD5.3下安装Apache+PHP+MySQL+Tomcat (453次浏览)



