纯技术讨论,比较好奇除了使用定制的perf_event还有没有获取栈数据的方式,尝试了获取当前sp和当前线程的栈基址(从map中解析得到)后直接用bpf_probe_read_user从sp开始读取栈数据,在安卓上每次大概能读8k~30k字节左右的数据,但是在追踪大型app时还是出现栈回溯截断现象,想了想可能是栈数据有错误,还是说这是个无解的问题,替代方案只有下中断然后用remote_unwinder回溯