Linux内核硬件断点

标签 linux debugging kernel breakpoints

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

最佳答案

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

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

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

文档似乎相当稀缺,但有 an example关于如何在内核中使用该 API,它可能会有所帮助。

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

关于Linux内核硬件断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16362063/

相关文章:

linux - 如何通过bash检查最新的内核版本

linux - 无法为用户将 key 添加到远程计算机

c++ - 从 shm_open() + mmap() 更改共享内存的可见性

asp.net - 在 asp.net MVC Javascript 事件中未命中断点

c - Linux 内核中的 stdlib.h 替代方案?

linux - 了解 rt_rq(real time runqueue) 内核中数据成员的使用

linux - 如何通过 WebDAV/DeltaV 访问 subversion 版本库?

linux - 为什么 m4 使用两个不同的字符作为引号?

javascript - 为什么这个页面会导致 iOS 崩溃?

debugging - 如何使用 gcl 在 Common Lisp 中进行跟踪?