买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:华东计算技术研究所(中国电子科技集团公司第三十二研究所)
摘要:本发明涉及一种基于工具链的代码追踪方法,使用在函数入口及出口插入追踪代码的方式进行代码追踪,利用工具链中编译器的特殊选项,设置该选项后,编译器编译时将自动在每个函数的入口及出口分别添加一个可由用户自定义的钩子函数,用户可自由定义该函数的具体功能;本方法在这两个函数内部实现了追踪函数的具体功能,本方法中包括追踪函数及分析程序两部分,解决了当前实现代码追踪耗时大、复杂度较高、追踪不全面的问题,作为一种动态的代码追踪方法,本方法可以准确追踪任务的运行流程及各函数消耗的时间,可以自动在代码中添加追踪函数,适合代码规模较大的项目使用,实现非常简单,技术人员具体实现时也不会耗费过多时间。
主权项:1.一种基于工具链的代码追踪方法,其特征在于,使用在函数入口及出口插入追踪代码的方式进行代码追踪,利用工具链中编译器的特殊选项,设置该选项后,编译器编译时将自动在每个函数的入口及出口分别添加一个可由用户自定义的钩子函数,用户可自由定义该函数的具体功能;本方法在这两个函数内部实现了追踪函数的具体功能,本方法中包括追踪函数及分析程序两部分,具体如下:追踪函数以任务为单位记录,当某个任务调用函数时,函数入口的追踪函数将首先判断当前任务是否为需要记录的任务,之后获取正在运行的CPU核、时戳、被调用的函数地址及当前调用所处的层级;其中CPU核及时戳可通过操作系统的对应接口快速获得,被调用的函数地址则由系统传递的参数获得;需要记录的任务分别维护一个变量用于记录当前调用所处的层级,该变量在函数入口加一,在函数出口减一;为降低增加追踪函数对原有程序带来的性能损耗,追踪函数获取数据后直接写入相应内存中,操作系统另有一低优先级任务周期性的将这些内存中的数据写入到文件中;此时文件中保存的仅是记录的原始数据,还需分析程序对原始数据进行整理;此时原始数据中每行数据共包含以下数据:数据1、表明该行数据在函数入口还是出口记录的,入口为i,出口为o;数据2、调入或调出的函数地址;数据3、函数被调用时任务运行在哪个CPU核;数据4、调用时的时戳;数据5、当前调用所处的层级;分析程序将根据一定规则对原始数据进行整理,使技术人员可以清晰地了解任务具体的运行流程;首先分析程序将根据符号表把函数地址翻译为对应的函数名,其次将根据调用层级n在每行前加入数个空格,最后根据调入和调出时记录的时戳算出本次函数调用共耗费多少时间。
全文数据:
权利要求:
百度查询: 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种基于工具链的代码追踪方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。