栈数据的采集与使用 - ebpf番外篇之解析perf_event

在研究stackplz的代码时发现其是用perf_event_open进行栈数据的采集,并且因为libbpfperf_event_open并没有带上PERF_SAMPLE_STACK_USER标记所以还要修改libbpf代码,感觉总体实现并不是很好并且perf_buffer性能也不咋地,所以研究有无其他获取栈数据的方式

Read more

顶不住了还是go吧 - ebpf-go框架之cilium-ebpf

被libbpf交叉编译折磨烂了,具体来说就是libbpf只支持gnu/glibc,但是需要用到的unwindstack库又需要ndk-clang来提供很多安卓的api,两个实在没法编到一起,只能迁移到go然后把unwindstack以cgo动态库的形式加入到项目中

Read more