13、硬件跟踪技术:原理、应用与挑战

硬件跟踪技术:原理、应用与挑战

1. 基本功能与工作流程

1.1 程序流分析的指令跟踪

硬件跟踪的一种重要方式是指令跟踪,其目标是追踪每一条已执行的命令或指令。硬件跟踪的基本设置有其特定模式。在程序执行过程中,若使用硬件跟踪工具观察代码,像图中代码片段里,红色框出的是基本块,每个基本块以跳转或函数调用结束。除处理中断或异常外,指令顺序执行的中断被称为分支,各种跳转和调用(条件或无条件)都属于分支。

例如,当代码执行到 jeq d15,#2,.L10 指令时,如果寄存器 D15 的值为 2,就会触发跳转到 .L10 标签处,随后 .L10 处的命令会依次执行,最后一个是调用 CAN_PreWrite 函数。

若处理器上的跟踪单元为每条执行的命令(蓝色箭头所示)在跟踪内存中做记录(包括时间戳),会导致极高的跟踪带宽需求。实际上,重建程序流只需跟踪所采取的条件分支即可,其间的所有指令可以通过插值法重建,其执行时间和时间戳也能近似得出。具体的跟踪逻辑因处理器而异,但共同点是只在跟踪内存中记录少数关键事件,大部分执行指令通过插值重建。最终能得到观察到的程序流图像、所有处理过的机器指令列表以及每条指令的时间戳。若有符号信息和源文件,还能在源代码中跟踪程序流。

1.2 数据跟踪

数据跟踪是对特定地址或地址范围的写访问进行监控。当对监控的地址或区域进行写访问时,该事件会与数据值一起记录到跟踪内存中,这样就能随时间重建数据值的变化。

2. 应用场景

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值