4.处理流程
1)先软件预处理,然后CodeTest 插桩,最后编译生成.out 文件和.idb
2)下载到目标板上运行,probe 开始从总线上采集数据,然后把数
3)CodeTest IDE 得到数据,然后结合.idb 中数据,得到分析结果
5.实现原理
1)原理:
程序员编写的源代码首先会通过CodeTEST 的编译驱动器调用原编译器对进行预编译,然后CodeTEST 的插桩器(源代码分析程序)对预编译好的源代码进行自动的插桩,即在需要插桩的关键位置写入一条赋值语句(如:amc_ctrt=0x74100009),并把插入的标记送入一 个数据库文件中生成一个符号数据库暂存起来,以备为以后分析时调用。然后,CodeTEST的编译驱动器又会调用原编译器对插桩后的代码进行编译生成可执行目标代码送到目标板上运行。当程序在目标系统运行到插桩点的位置时,目标板的控制总线和地址总线上会出现
相应的控制信号和地址信号。当CodeTEST 的辅助硬件(信号捕获探头)从控制总线和地址总线上监视到符合以上条件的信号时,CodeTEST 会主动地从数据总线上把数据捕获回来送到CodeTEST 的内存中暂存并对这些数据进行预处理,然后将预处理后的数据通过局域网送
到工作平台上。通过与前面生成的符号数据库中的数据进行比较,我们就此得知当前程序的运行状态,借此完成对嵌入式软件的性能分析,高级覆盖率分析,内存分析和大容量的代码跟踪。
2)优点:
CodeTEST 是一个硬件辅助软件的在线测试与分析工具,它一方面吸取软件打点技术,并对这种技术进行了改善,纯软件测试工具插入的是一个函数,而CodeTEST 插入的是一条赋值语句, 它在汇编级也是一条语句,所以它执行的时间非常短,同时避免了被其它的中
断所中断,它不需要在目标板上存放测试数据,不需要运行额外的预处理任务,所以它对目标系统的影响非常小(1%-15%)。另一方面,CodeTEST 从纯硬件的测试工具那里吸取了从总线捕获数据的技术并且对它进行了改善,CodeTEST 不再是采样的方式,它是通过实时监
视系统总线,当程序运行到插入的特殊的点的时候才会主动的到数据总线上把数据捕获回来,借此,在同样的处理能力下,CodeTEST 可以做到精确的数据观察。
文章来源于领测软件测试网 https://www.ltesting.net/