jjk927 发表于 2011-07-04 19:36

linux 内核和用户态数据断点的功能?!

各位大侠,请教个问题:

最近看cpu 的手册,看到 cpu 支持数据断点的功能,感觉在内核里面都是一个虚拟地址工具,数据断点应该可以实现,可是看有些软件在用户态调试的时候能实现数据断点?!

不太理解用户态如何实现数据断点,每个进程的空间都不同?!

另外,标准内核是否支持数据断点功能,内核数据断点功能大概是个什么思路实现啊,内核的mmu 一直不变,映射到同一个区域?!

unbutun 发表于 2011-07-04 21:13

硬数据断点:

这部分主要是不同体系结构,数据断点就是一个cpu的寄存器,当对此寄存器表示的一段或者一个内存地址发生读写操作时,会产生异常,然后由异常处理程序将发生异常时的信息记录下来返回给用户态

软数据断点:

一般是软件手段,如将监测的地址记录在某个全局变量里,如gdb在监测此地址时会和全局变量进行比较,然后做期望做的事情
页: [1]
查看完整版本: linux 内核和用户态数据断点的功能?!