探索在不影响系统性能的情况下,如何远程调试正在目标计算机上运行的 FreeBSD 内核。本文讨论如何使用串行通信端口设置调试环境、如何编译经过修改的内核代码、如何进行调试,并介绍了一些故障诊断提示。
引言
FreeBSD 是从 BSD 衍生而来的高级操作系统,BSD 则是加利福尼亚大学伯克力分校开发的 UNIX® 版本。它提供了很高的性能,与其他系统的兼容性更强,并且需要的系统管理更少。FreeBSD 包含了内核级的状态式 (Stateful) IP 防火墙以及许多其他服务,如 IP 代理网关、访问控制列表、强制访问控制、基于 Jail 的虚拟主机以及加密保护的存储。
在开发内核代码或运行开发内核时,偶尔会发生内核崩溃。重要的是诊断核心转储以便提取有用的信息。如果尝试使用同一台开发计算机来调试此核心转储,则可能影响系统的性能。每次只能调试一个核心转储。要想高效地调试内核的核心转储,最好是在开发计算机和目标计算机之间建立远程调试会话,然后使用串行通信远程调试内核。
kgdb 实用程序是基于 gdb 的调试器,允许调试内核核心文件。FreeBSD 5.3 及更高版本提供了 kgdb 实用程序。如果您有早期版本的 FreeBSD,那么仍然可以使用 gdb -k 来读取核心转储文件。kgdb 可帮助在内核代码中放置断点,这样您就可以逐步通过断点来观察变量。
本文介绍如何使用串行通信端口来设置调试环境、如何编译经过修改的内核代码,以及如何开始内核调试。还介绍了一些故障诊断提示。
设置调试环境
要设置进行 FreeBSD 内核调试的远程调试环境,您需要两台计算机:一台目标计算机和一台开发计算机。目标计算机上运行需要调试的新内核映像。开发计算机用于调试目标计算机上运行的内核。为了获得更好的性能,您可以使用配置较好的计算机作为开发计算机。
零调制解调器电缆 (Null modem cable)
零调制解调器 (Null modem) 是一种使用 RS-232 串行电缆连接两台计算机的通信方式。原始 RS-232 标准只定义了使用调制解调器连接计算机的方式。使用零调制解调器连接时,发送线和接收线要交叉连接。根据使用目的而定,有时需要交叉连接一个或多个握手线。有多种连接方式可供选择,因为标准中并未涵盖零调制解调器连接。
如果将零调制解调器电缆连接到串行端口,与使用调制解调器时的速率 (9600 bps) 相比,调试器能够以它当前的最高速率 (19200 bps) 运行。通常认为这种配置比使用调制解调器更可靠,其原因在于:
图 文 结 合:http://www.qqread.com/freebsd/e348114.html相关专题
- 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次浏览)



