[发明专利]一种输出函数执行流的方法、系统和终端设备有效
申请号: | 201210064657.5 | 申请日: | 2012-03-13 |
公开(公告)号: | CN102646051A | 公开(公告)日: | 2012-08-22 |
发明(设计)人: | 刘骁 | 申请(专利权)人: | 深圳市融创天下科技股份有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 输出 函数 执行 方法 系统 终端设备 | ||
技术领域
本发明涉及函数调用领域,尤其涉及一种输出函数执行流的方法、系统和终端设备。
背景技术
传统的软件调试技术分为以下两种方式:
1,执行到断点处,ARM核进入调试暂停模式,这时候可通过外部给JTAG接口信号输入指令进行单步执行;
2,通过监控方法监控设置好的数据观察点和执行观察点。这时候ARM处于真实运行的环境;
以上两种方法存在如下技术问题:
1、只能观察到测试观察点,只起了局部了解源程序的作用;
2、不能清楚了解程序中的函数调用关系;
3、不能快速动态观察目标程序实际运行的逻辑;
从而软件研发和维护成本高,软件研发和调试的效率低。
发明内容
本发明实施例的目的在于提出一种输出函数执行流的方法、系统和终端设备,旨在解决现有技术中的调试技术只能观察到测试观察点,只起了局部了解源程序的作用;不能清楚了解程序中的函数调用关系;不能快速动态观察目标程序实际运行的逻辑;软件研发和维护成本高、软件研发和调试的效率低的技术问题。
本发明实施例是这样实现的,一种输出函数执行流的方法,包括以下步骤:
编译源代码生成目标程序,修改所述目标程序并写入软中断号;
运行所述修改后的目标程序;
判断所述目标程序中的函数是否存在所述软中断号,若存在则输出所述函数的执行流。
本发明实施例的另一目的在于提出一种输出函数执行流的系统,所述系统包括:编译模块、写软中断号模块、运行模块、判断模块和输出模块;
所述编译模块,与所述写软中断号模块相连,用于编译源代码生成目标程序;
所述写软中断号模块,与所述编译模块和运行模块相连,用于修改所述目标程序并写入软中断号;
所述运行模块,与所述写软中断号模块和判断模块相连,用于运行所述修改后的目标程序;
所述判断模块,与所述运行模块和输出模块相连,用于判断所述目标程序中的函数是否存在所述软中断号,若存在则通知所述输出模块;
所述输出模块,与所述判断模块相连,用于接收所述判断模块的通知,并输出所述函数的执行流。
本发明实施例的另一目的在于提出一种包含所述输出函数执行流系统的终端设备。
本发明的有益效果:
本发明通过在目标程序中写入软中断号,运行所述目标程序,判断所述目标程序中的函数是否存在所述软中断号,若存在则输出所述函数的执行流。所述执行流清楚的记录了函数调用关系,并可以获取所有的现场函数,能够快速、动态地观察目标程序实际运行的逻辑,降低了软件研发和维护成本,缩短了软件研发和调试的时间。在编译源代码时,编译器生成所述源代码中所有函数被编译时的栈帧信息,同时取消优化选项,这时每个函数有且只有一个sub fp,ip,#4指令,通过所述sub fp,ip,#4指令准确地将指令mov ip,sp的机器码修改为软中断号,进一步准确地输出函数的执行流。运行修改软中断号后的目标程序,获取LR寄存器的值,并通过LR-4作为数据存取的地址获取所述地址中的SWI软中断指令的24位数据,如果所获取的24位数据为所修改的软中断号,则输出LR寄存器的值,否则,跳转到系统本身的软中断处理程序的起始处。通过输出LR寄存器的值,能够输出R0-R14的全部内容。此外,修改软中断号和输出LR寄存器的值的过程可以分别封装为PC工具和软中断程序,进一步提高工作效率,且,在程序调试过程中,目标程序完全处于实际运行状态,不影响软中断程序的运行。
附图说明
图1是本发明一种输出函数执行流方法的第一优选实施例的流程图;
图2是本发明一种输出函数执行流方法的第二优选实施例的流程图;
图3是本发明一种输出函数执行流方法的第三优选实施例的流程图;
图4是本发明一种输出函数执行流系统的第一优选实施例的结构示意图;
图5是本发明一种输出函数执行流系统的第二优选实施例的结构示意图;
图6是本发明一种输出函数执行流系统的第三优选实施例的结构示意图;
图7是本发明一种输出函数执行流系统的第四优选实施例的结构示意图;
图8是本发明一种输出函数执行流系统的第五优选实施例的结构示意图;
图9是本发明一种输出函数执行流系统的第六优选实施例的结构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市融创天下科技股份有限公司,未经深圳市融创天下科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210064657.5/2.html,转载请声明来源钻瓜专利网。