频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

在 FreeBSD 中使用串行通信进行远程内核调试

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组
上一页 1 2 3 
访问地址 http://www.qqread.com/freebsd/e348114.html$ 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系统安全管理全面解析 Linux2.6内核热门通信技术专区专题,或进入讨论组讨论。
上一页 1 2 3 
收藏此文】【 】【打印】【关闭
较早的文章:FreeBSD shell设置

较新的文章:FreeBSD配置系统时间
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章