2

我想为 x86 架构构建一个简单的 linux 内核调试器。我首先希望它设置断点。我想知道是否有用于配置调试器寄存器的内核 api,如果有的话,有什么好的文档吗?如果没有用于调试器寄存器的内核 api,是否有任何关于如何手动正确配置寄存器的文档(使用汇编“MOV”指令)?

4

1 回答 1

4

这取决于您要处理的内核版本。

至少从 2.6.33 开始就有一个用于在内核中设置硬件断点的 API,尽管它可能在 3.0-3.2 版本左右有所改变。

看看其中的register_wide_hw_breakpoint()函数kernel/events/hw_breakpoint.c和它附近的函数。

该文档似乎非常稀缺,但有一个如何在内核中使用该 API 的示例,它可能会有所帮助。

在RaceHound 项目中可以找到使用该 API 的更复杂的示例。

于 2013-05-04T18:22:15.573 回答