SeeFlowerX / stackplz

基于eBPF的堆栈追踪工具
Apache License 2.0
925 stars 179 forks source link

[feature request] 硬件断点与SEC("perf_event")绑定 #21

Closed SeeFlowerX closed 1 year ago

SeeFlowerX commented 1 year ago

即支持在命中硬件断点之后,可以在硬件断点处做内存读取之类的操作

不过初步调研测试了下perf_event,似乎读取内存相关的API无法使用,暂时不清楚原因,后续有时间了再研究

Ref https://github.com/eunomia-bpf/bpf-developer-tutorial/blob/96d4ce04c4f1be51dc929d8e11196f5dd4f48985/src/12-profile/profile.c#L193

SeeFlowerX commented 1 year ago

根据cilium/ebpf的说明,能和SEC("perf_event")绑定的类型有:

硬件断点这类虽然测试确实可以绑定一个上去,但是进入SEC("perf_event")的时候并不是目标进程。

https://github.com/cilium/ebpf/blob/0acd95c6c83cabeff32e94594cd4b7de6e7df4a2/link/perf_event.go#L20

SeeFlowerX commented 1 year ago

综合分析后,姑且认为无法实现。