在hw断点之前的内核上的HW断点功能

时间:2018-06-18 18:50:37

标签: debugging linux-kernel kernel-module watchpoint

如果可以,请帮忙。 我需要在内核模块抛出机制中调试对某些变量的访问,这允许每次在需要访问时打印堆栈。我知道最简单的方法是使用HW断点(也称为watchpoint),https://github.com/torvalds/linux/blob/master/kernel/events/hw_breakpoint.c使用处理器调试寄存器,写入监视器地址,并且可以生成中断,可以通过回调函数来处理一切,你需要的。

但不幸的是,在我的项目中使用旧版本的Linux内核,然后添加了此功能。因此,由于项目限制,我无法升级项目内核。 我发现,在内核中可用watch.c: https://github.com/torvalds/linux/blob/master/arch/mips/kernel/watch.c 这个函数是否提供类似的功能,如hw断点,还是没有?我找不到这个功能的文档。

我需要这个的根本原因是有人在内核模块中间接地破坏了指向内存的指针,结果是"未对齐的内存访问内核崩溃"。 那么可能会提供一些其他调试技术,可以帮助找到代码的一部分,这样做,作为断点(观察点)的替代方案? 非常感谢任何有用的信息。

0 个答案:

没有答案