Utrace 论文地址
1. 暂未合入kernel主线,最终Ptrace底层可由utrace实现,Ptrace可作为utrace的客户端
2. uprobe是utrace的客户端
Ptrace
系统调用,主要用来实现debug工具,也可用来实现trace的功能。
?如何实现的断点
Ptrace应用场景:
- gdb:跟踪多线程时,一旦某一个线程命中一个断点,gdb会停止所有的线程;
- strace: 用来跟踪系统调用
- ltrace :跟踪动态库中的函数,实现原理:plt/got表
kernel 态的trace
1. kprobe
1. 只能够在内核中特定的位置进行动态的插桩。
2. utrace
目标是为下一代用户态的trace以及debug工具做准备。是内核中的一个基础框架,管理所有的task_struct。
最终Ptrace将会是utrace的一个client
3. uprobe
utrace的一个client