一种函数运行的追踪方法和装置制造方法及图纸

技术编号:19691615 阅读:64 留言:0更新日期:2018-12-08 11:07
本发明专利技术实施例提供了一种函数运行的追踪方法和装置,该方法和装置应用于程序调试系统,具体为在被追踪的目标程序在调试为可执行代码前,在所述目标程序中每个函数的入口和出口插入预先编写的追踪代码,所述追踪代码用于向所述程序调试系统的后台发送所述函数的运行时间、函数名和/或函数参数;在调用所述函数时,执行所述追踪代码;记录所述追踪代码被执行时所返回的所述运行时间、所述函数名和/或所述函数参数。通过追踪代码的执行,从而达到了追踪函数运行的目的。

【技术实现步骤摘要】
一种函数运行的追踪方法和装置
本专利技术涉及程序开发
,特别是涉及一种函数运行的追踪方法和装置。
技术介绍
函数,又称方法或子程序,是一个完整程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。函数一般会有输入参数并有返回值,其提供对特定处理过程的封装和细节的隐藏。为便于表达,本申请中将“方法”或“子程序”称统称“函数”。追踪函数运行是指对函数运行的轨迹进行记录,记录的信息包括函数调用栈、调用每个函数时传递的参数、每个函数运行的时长等。这些信息可以清晰地反映函数运行的具体轨迹,也可以反映函数运行的各个环节的耗时情况。追踪函数运行是软件开发中的一个重要技术,为漏洞解决和性能优化提供重要帮助。目前还没有有效的方法对函数进行追踪。
技术实现思路
有鉴于此,本专利技术提供了一种函数运行的追踪方法和装置,以解决在对程序进行调试过程中无法对函数进行有效追踪的问题。为了解决上述问题,本专利技术公开了一种函数运行的追踪方法,应用于程序调试系统,所述追踪方法包括步骤:在被追踪的目标程序在调试为可执行代码前,在所述目标程序中每个函数的入口和出口插入本文档来自技高网...

【技术保护点】
1.一种函数运行的追踪方法,应用于程序调试系统,其特征在于,所述追踪方法包括步骤:在被追踪的目标程序在调试为可执行代码前,在所述目标程序中每个函数的入口和出口插入预先编写的追踪代码,所述追踪代码用于向所述程序调试系统的后台发送所述函数的运行时间、函数名和/或函数参数;在调用所述函数时,执行所述追踪代码;记录所述追踪代码被执行时所返回的所述运行时间、所述函数名和/或所述函数参数。

【技术特征摘要】
1.一种函数运行的追踪方法,应用于程序调试系统,其特征在于,所述追踪方法包括步骤:在被追踪的目标程序在调试为可执行代码前,在所述目标程序中每个函数的入口和出口插入预先编写的追踪代码,所述追踪代码用于向所述程序调试系统的后台发送所述函数的运行时间、函数名和/或函数参数;在调用所述函数时,执行所述追踪代码;记录所述追踪代码被执行时所返回的所述运行时间、所述函数名和/或所述函数参数。2.如权利要求1所述的追踪方法,其特征在于,所述在所述目标程序中每个函数的入口和出口插入预先编写的追踪代码,包括:确定所述入口的位置,并确定所述出口的位置;将所述预先编写的追踪代码插入到所述入口的位置和所述出口的位置。3.如权利要求2所述的追踪方法,其特征在于,所述并确定所述出口的位置,包括:将所述函数的返回指令确定为所述出口的位置;或者,在所述函数的所有代码外部套接一个try…catch块,将所述try…catch块末尾的异常处理模块作为所述出口的位置。4.如权利要求3所述的追踪方法,其特征在于,所述函数的所有代码的外部套接一个try…catch块,包括:将所述函数的所有指令读入到内存中;从后向前寻找最后一条返回指令,将第一条指令至所述最后一条返回指令作为所述try...catch块的try部分,在catch部分直接记录函数出口信息,并利用所述异常处理模块将捕捉到的异常抛出。5.如权利要求1~4任一项所述的追踪方法,其特征在于,还包括步骤:以树的方式显示被返回的所述运行时间、所述函数名和/或所述函数参数。6.一种函数运行...

【专利技术属性】
技术研发人员:赵立飞吴金贵
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1