通过串口调试FreeBSD内核的操作示例

2009-05-13 04:27:28来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


这个示例使用的是Windows vmware里的两台虚拟FreeBSD机器,演示通过串口调试FreeBSD内核的操作过程。内核版本为FreeBSD6.1。
1、调试环境的搭建
   首先是在vmware里面安装两台FreeBSD机器,并通过用命名管道模拟的“串口”将这两台机器连接起来,具体设置方法请参见vmware随机文档的“Connecting Two Virtual Machines ”一节。
2、FreeBSD调试内核的编译
   两台虚拟FreeBSD机器分别作为调试机和目标机。
(1)在调试机上构建自己的内核配置文件,假设名字为DEBUG_KERNEL:
CODE:
[Copy to clipboard]
#cd /usr/src/sys/i386/conf
#mkdir /root/kernels
#cp GENERIC /root/kernels/DEBUG_KERNEL
#ln -s /root/kernels/DEBUG_KERNEL(2)在调试机上编辑上述内核配置文件:
CODE:
[Copy to clipboard]
#vim DEBUG_KERNEL在配置文件中加入以下选项:
CODE:
[Copy to clipboard]
makeoptions     DEBUG=-g
options         KDB
options         KDB_TRACE
options         DDB
options         GDB(3)在调试机上编译调试内核:
CODE:
[Copy to clipboard]
#/usr/sbin/config DEBUG_KERNEL
#cd ../compile/DEBUG_KERNEL
#make cleandepend
#make depend
#make(4)完成上述步骤之后,在调试机的当前目录(/usr/src/sys/i386/compile/DEBUG_KERNEL/)目录下就会生成kernel.debug文件。把这个文件拷贝到目标机上,放到/boot/kernel/目录下,更名为kernel,并使用strip -x去掉其中的调试符号。
3、完成调试机和目标机的远程连接
(1)编辑目标机的/boot/device.hints文件,找到0号串口标志对应的行,为其增加0x80标志,修改后该行如下:
CODE:
[Copy to clipboard]
hint.sio.0.flags="0x90"(2)另外,我所使用的FreeBSD6.1版本在进入DDB模式之后会失去键盘响应,这是由于DDB和kbdmux(4)共存还有问题。如果出现这一情况,解决办法是在目标机的/boot/device.hints文件中添加如下这一行:
CODE:
[Copy to clipboard]
hint.kbdmux.0.disabled="1"(3)重启目标机,在启动菜单中选择以下这一项:
CODE:
[Copy to clipboard]
6. Escape to loader prompt然后在“OK”提示符后输入boot -d :
CODE:
[Copy to clipboard]
Type '?' for a list of commands, 'help' for more detailed help.
OK boot -d这时就会出现如下画面:
     

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:宣传画 - FreeBSD靓照

下一篇:ipfw的使用方法