除了使用寄存器来记录分支信息的LBR机制,IA-32 CPU还支持使用内存来记录分支信息,通常被称为Branch TraceStore,简称BTS。
CpuWhere工具用来演示IA-32CPU的BTS功能,可以启用BTS功能,开辟内存区域记录CPU的分支记录,然后以符号形式显示在GUI界面中。
上图显示的是CpuWhere的一个工作场景。左侧的编辑框用来配置BTS缓冲区可以存放的分支记录数,这个数值越大,需要的内存缓冲区也就越大。左侧的按钮用来执行各种动作,依次为:
Load - 加载驱动程序;
Start Recording - 开始分支记录;
Stop Recording - 停止分支记录;
Fetch Records - 获取分支记录;
Symbol Path - 设置符号路径;
Reload Symbol - 调用调试引擎的接口,重新加载调试符号;
Clear - 清除右侧列表框的所有内容;
Copy Sel - 复制右侧列表框中选中的内容;
Copy All - 复制右侧列表中的所有信息;
Unload - 卸载驱动程序;
Quit - 退出程序。
|