Break Dancing: Low Overhead, Architecture Neutral Software Branch Tracing
论文的方法使用Linux perf events API配置PMU,指定性能事件和采样频率。PMU在这些指定性能事件发生时生成采样点。当程序执行过程中触发了配置的性能事件,PMU会生成一个采样点,这个采样点包含了事件发生时的上下文信息,如程序计数器PC值。PMU生成的采样点会触发中断,操作系统会捕获这个中断,并调用用户空间的中断处理程序处理采样事件。然后使用解码库顺序解析指令流,识别控制流转移指令,并解析这些指令的操作数以确定目标地址。
原创
2025-02-09 15:51:48 ·
985 阅读 ·
0 评论