分类: BSD
2008-03-20 17:20:20
笔者在《搭建NetBSD调试环境》中详细说明了如何搭建用于NetBSD内核的调试的无盘工作站环境,其中,也提到了此调试环境的缺点
—只能调试KGDB初始化之后的代码。
KGDB初始化之前,内核还是做了不少的事情,单单靠阅读代码理解起来还是非常困难。这与笔者理想中的JTAG调试器还是有些距离的,有没有其他的办法调试之前的代码呢?
笔者有幸接触了一个模拟器VirtutechSimics并在此基础上做了一些二次开发工作。在此期间,笔者见识了其强大的功能,经过一番摸索后,将其应用到NetBSD内核代码分析工作中。
Simics并不是要模拟一个完整的PC或者其他微型计算机的虚拟机,而是“提供一个提供了一个可控的、具有确定性的、并且完整的虚拟环境”。有兴趣的读者可以查阅Simics相关的资料。
建议你仔细阅读一下《搭建NetBSD内核调试环境》—虽然与本文搭建的环境并不相同,最好按照步骤做一遍,同时便于比较两者的优劣;同时,本环境中与之相同的部分本文不再赘述。
闲话少说,说干就干!
具体过程中图片太多,上传不便,加之也影响速度,因此希望详读的请附件:simics.zip(429 KB)