Ring0(内核模式)调试器是如何实现的?

时间:2012-01-04 22:01:07

标签: debugging kernel

网上似乎没有太多关于此主题的信息。

有人可以解释内核模式调试器背后的一般概念, 这些工具是如何实施的?从我收集的内容来看,似乎是他们 为调试器专门运行自己的微操作系统来运行 在用户操作系统下面,但我不太确定。

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

没有必要再实施另一个隐形操作系统来调试操作系统内核。只要正在调试的内核仍处于活动状态,就可以执行线程,停止并恢复它们(在所有CPU上,当然,如果系统是多处理器)并且有一种方法可以使用控制台或专用的I /与它通信O端口,这就足够了。

在内核线程中设置断点通常以与用户线程相同的方式完成。阅读和写作记忆也是如此。

使用额外的PC进行内核调试很方便,调试器实际运行。可以使用串行,1394,USB或网络连接来连接两台PC。必须将调试对象配置为在调试端口上侦听调试命令并进行适当的响应(例如,停止/重启执行,读/写内存,设置/重置断点等)。调试对象必须具有专用的调试器线程(或类似于线程的东西)来抢占其他现有线程并执行请求的调试命令(如上所述)。