运行时注入概要分析策略

时间:2015-10-27 20:20:54

标签: c profiling profiler

我正在使用嵌入式平台上的SHARC架构,由于实时限制,我无法使用JTAG调试器。

我的想法是基于链接器内存映射文件(这是一个包含所有符号和地址的漂亮XML文件)实现一种侵入性分析器。

在运行时期间以及使用正确的声明-DPROFILING编译目标时,我可以在函数的开头和结尾添加JMP指令来对其进行基准测试。

通过这些间谍,我可以记录特定功能的执行时间以及堆栈状态。

目前我的目标界面是用Python编写的,我正在考虑这些分析方法:

p = Profiling('memorymap.xml')
trigger = p.AddTrigger('interrupt_isr', variable_change = 'var_foo')
p.AddSpy('function_foo', nacquisitions = 8, trigger = trigger)

一旦满足触发条件,间谍将开始记录函数function_foo的下一次8执行。触发器添加到函数interrupt_isr的开头,并在变量var_foo发生变化时触发。

目前我对我的配置策略并不十分满意。有没有可以从中获取灵感的标准配置界面?

注射机制包括几个步骤:

  1. 阅读所需标签/功能名称的说明
  2. 复制间谍程序结束时的阅读说明
  3. 将指令替换为间谍程序
  4. 执行间谍程序
  5. 跳回原始地址

0 个答案:

没有答案