跟踪和调试的方法、装置及系统制造方法及图纸

技术编号:10918315 阅读:89 留言:0更新日期:2015-01-15 11:50
本发明专利技术实施例提出一种跟踪和调试的方法、装置及系统,其方法包括:接收云端发送来的控制指令;根据所述控制指令动态跟踪目标应用的运行,并获取运行参数;将跟踪获得的运行参数通过云端输出给调试监控服务器;接收调试监控服务器通过云端发送来的根据所述运算参数设定调试命令;运行所述调试命令,对目标应用进行调试;将调试数据通过云端发送给调试监控服务器。通过本发明专利技术对目标应用程序进行跟踪与调试,具有操作方便、时间短、效率高、成本低、兼容性强等优点。

【技术实现步骤摘要】
跟踪和调试的方法、装置及系统
本专利技术涉及移动终端
,特别涉及一种跟踪和调试的方法、装置及系统。
技术介绍
随着移动通信电子技术的发展,如今移动终端已经不单具有远程通话的功能,许多个人电脑上的应用程序功能都可以通过移动终端来实现,如用户可以通过手机的浏览器浏览网页内容、通过手机上播放器播放视频和音乐、通过手机上的文档处理工具编辑文档等。目前,移动终端的应用程序出现问题(比如程序崩溃或者出现异常等)的话,如果要对其进行调试,首先要对出错的程序进行跟踪,获得应用程序运行的系统日志文件,并通过当前的环境数据来确定问题所在。以Android(安卓)手机下的应用程序为例,出现问题时一般会通过以下过程跟踪问题:(1)使用Android系统提供的日志API(ApplicationProgrammingInterface,应用程序编程接口)或者其自身定义的格式输出到日志文件中。为了可以确定问题所在,需要输出尽量详细的日志,跟踪过程中功收集的是所有调用过的入口函数的时间相关的性能参数。(2)使用Android系统提供的Debug类(指排除程序故障的一组对象)实现打开调试跟踪功能。现有的跟踪过程是通过注入并修改系统服务(system_server),而非修改程序自身的具体入口函数,需要root权限(超级用户权限,即可以修改系统中的任何文件而不受限制)。(3)如果出现的问题是可预期的Java异常(Java异常是指在Java语言中的异常),则输出其调用栈到日志文件中;(4)如果出现的问题是不可预期的异常(导致程序非预期退出的异常,包括Java异常和Native异常,Native异常是指本地指令执行异常),则查看Android系统所生成的记录文件。(5)日志文件形成后将其上传或者自动上传到指定地方。根据跟踪获得的环境数据,确定问题所在后,还要准备相关指令调试该问题,比如要重现缺陷、还原混淆的调用栈、断点或单步跟踪各个步骤的各个环境参数。而调试时需要邀请上报问题的用户到开发商,让用户的重现问题并直接在用户的移动终端上调试程序。由于现有的操作系统版本各异,使用的语言也不尽相同,所以在调试时需要让出现异常的移动终端安装可调式的版本。现有的这种跟踪与调试方法存在以下问题:现有技术在跟踪确定问题所在后,还需要对出现问题的移动终端进行实地调试,过程非常繁琐,若不能邀请到持有问题移动终端的用户到现场进行调试,则需要购买相关移动终端重现问题,调试时间长且费用成本高;
技术实现思路
本专利技术实施例的目的是提供一种跟踪和调试的方法、装置及系统,以解决现有的移动终端的跟踪和调试方式调试效率低、时间长,成本高,操作繁琐,容易出错的问题。本专利技术实施例提出一种跟踪和调试的方法,包括:接收云端发送来的控制指令;根据所述控制指令动态跟踪目标应用的运行,并获取运行参数;将跟踪获得的运行参数通过云端输出给调试监控服务器;接收调试监控服务器通过云端发送来的根据所述运算参数设定调试命令;运行所述调试命令,对目标应用进行调试;将调试数据通过云端发送给调试监控服务器。本专利技术实施例还提出一种跟踪和调试的装置,包括:控制指令接收模块,用于接收云端发送来的控制指令;跟踪模块,用于根据所述控制指令动态跟踪目标应用的运行,并获取运行参数;运行参数输出模块,用于将跟踪获得的运行参数通过云端输出给调试监控服务器;调试命令接收模块,用于接收调试监控服务器通过云端发送来的根据所述运算参数设定调试命令;调试模块,用于运行所述调试命令,对目标应用进行调试;调试数据发送模块,用于将调试数据通过云端发送给调试监控服务器。本专利技术实施例再提出一种跟踪和调试的系统,包括调试监控服务器、云端及至少一个移动终端,所述移动终端包括跟踪和调试的装置,其中所述跟踪和调试的装置进一步包括:控制指令接收模块,用于接收云端发送来的控制指令;跟踪模块,用于根据所述控制指令动态跟踪目标应用的运行,并获取运行参数;运行参数输出模块,用于将跟踪获得的运行参数通过云端输出给调试监控服务器;调试命令接收模块,用于接收调试监控服务器通过云端发送来的根据所述运算参数设定调试命令;调试模块,用于运行所述调试命令,对目标应用进行调试;调试数据发送模块,用于将调试数据通过云端发送给调试监控服务器。相对于现有技术,本专利技术实施例的有益效果是:本专利技术实施例通过云端可以远程控制一个或同时控制多个移动终端的目标程序的运行参数输出,无需对移动终端进行现场调试,跟踪和调试过程方便快捷,节约了时间成本,也节省了因邀请不到用户而购买移动终端所花费的经济成本。附图说明图1为应用本专利技术实施例方法的基本架构图;图2为本专利技术实施例的第一种跟踪和调试的方法的流程图;图3为本专利技术实施例的第一种动态跟踪过程的流程图;图4为本专利技术实施例的第二种动态跟踪过程的流程图;图5为本专利技术实施例的第二种跟踪和调试的方法的流程图;图6为本专利技术实施例的一种跟踪和调试的系统的结构图;图7为本专利技术实施例的一种跟踪和调试的装置的结构图;图8为本专利技术实施例的另一种跟踪和调试的装置的结构图;图9为本专利技术实施例的第一种跟踪模块的的结构图;图10为本专利技术实施例的第二种跟踪模块的的结构图。具体实施方式有关本专利技术的前述及其他
技术实现思路
、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本专利技术为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本专利技术加以限制。本专利技术实施例的跟踪和调试的方法应用于移动终端,请参见图1,其为应用本专利技术实施例方法的基本架构图,其中:a)用户——给出问题的缺陷等问题;需要按照终端开发人员的指引进行操作。b)目标应用程序——目标终端程序必须设置一个选项来开启调试模式,运用本专利技术实施例的方法进行动态跟踪和调试;一但开启调试,便会接收云端的命令执行之。c)云端——定义一个或多个协议,用于在目标应用程序与云端之间交换数据,以及云端与终端开发人员之间交互数据,以达到运用本方法进行动态跟踪调试的效果;要求包含若干条跟踪调试用的命令。d)终端开发人员——开发和调试该目标应用程序的人员,要向用户了解程序的问题,制定相关策略,拟定需要终端执行的指令。以下简称开发人员。e)跟踪调试环境——终端开发人员通过该环境来下达命令到云端,并从云端获得反馈结果。一般来说,可以与Eclipse等(Eclipse是一个开放源代码的、基于java的可扩展开发平台)开发环境集成在一起。当目标应用程序的运行发生异常时,用户可以通过上报、论坛发布等方式向开发人员反馈情况,开发人员获知情况后,可以指引用户开启移动终端的网络功能,并打开目标应用程序的调试模式,以利用本专利技术实施例的方法对目标应用程序进行跟踪和调试。请参见图2,其为本专利技术实施例的一种跟踪和调试的方法的流程图,其包括以下步骤:S21,接收云端发送来的控制指令。所述控制指令用来触发对目标应用程序的跟踪函数。S22,根据所述控制指令动态跟踪目标应用的运行,并获取运行参数。所述跟踪的目的是通过重现问题来获得程序运行参数。跟踪是只监控程序运行流程中的函数被调用时的情况,包括函数名、调用参数、类名、类成员属性值、附近的一些变量值等。所述动态跟踪是指在打开用户调试模式本文档来自技高网
...
跟踪和调试的方法、装置及系统

【技术保护点】
一种跟踪和调试的方法,其特征在于,包括:接收云端发送来的控制指令;根据所述控制指令动态跟踪目标应用的运行,并获取运行参数;将跟踪获得的运行参数通过云端输出给调试监控服务器;接收调试监控服务器通过云端发送来的根据所述运算参数设定调试命令;运行所述调试命令,对目标应用进行调试;将调试数据通过云端发送给调试监控服务器。

【技术特征摘要】
1.一种跟踪和调试的方法,其特征在于,包括:接收云端发送来的控制指令;根据所述控制指令动态跟踪目标应用的运行,其中,调用针对目标应用预先设置的跟踪函数来记录原函数运行前和运行后的环境参数,通过结合所述跟踪函数两次收集的数据获取运行参数;将跟踪获得的运行参数通过云端输出给调试监控服务器;接收调试监控服务器通过云端发送来的根据运算参数设定调试命令;运行所述调试命令,对目标应用进行调试;将调试数据通过云端发送给调试监控服务器;其中,所述调用针对目标应用预先设置的跟踪函数的步骤包括:检测操作系统版本;比较各操作系统版本的关键结构体并提取公共部分,以根据操作系统版本调用相应函数符号的跟踪函数。2.如权利要求1所述的跟踪和调试的方法,其特征在于,所述根据所述控制指令动态跟踪目标应用的运行的步骤包括:在原函数开始运行前,通过控制指令修改入口函数指针,并调用针对目标应用预先设置的跟踪函数;执行跟踪函数的逻辑;通过跟踪函数还原入口函数指针,并调用原函数;在原函数运行完成时,通过控制指令修改入口函数指针,并调用针对目标应用预先设置的跟踪函数;执行跟踪函数的逻辑,实现对原函数运行参数的记录。3.如权利要求1所述的跟踪和调试的方法,其特征在于,所述根据所述控制指令动态跟踪目标应用的运行的步骤包括:预先将原函数保存在指令成员变量中;在原函数开始运行前,通过所述控制指令修改入口函数指针,并调用针对目标应用预先设置的跟踪函数;执行跟踪函数的逻辑;通过跟踪函数调用指令成员变量中的原函数;在原函数运行完成时,通过控制指令控制执行跟踪函数的逻辑,实现对原函数运行参数的记录。4.如权利要求1所述的跟踪和调试的方法,其特征在于,所述接收云端发送来的控制指令的步骤之前还包括:通过云端向调试监控服务器发送用于验证身份的标识码。5.如权利要求4所述的跟踪和调试的方法,其特征在于,所述标识码可以是国际移动设备身份码、验证过的即时通信帐号、验证过的手机号码、临时生成的易输入号码中的一种或多种。6.一种跟踪和调试的装置,其特征在于,包括:控制指令接收模块,用于接收云端发送来的控制指令;跟踪模块,用于根据所述控制指令动态跟踪目标应用的运行,其中,调用针对目标应用预先设置的跟踪函数来记录原函数运行前和运行后的环境参数,通过结合所述跟踪函数两次收集的数据获取运行参数;运行参数输出模块,用于将跟踪获得的运行参数通过云端输出给调试监控服务器;调试命令接收模块,用于接收调试监控服务器通过云端发送来的根据运算参数设定调试命令;调试模块,用于运行所述调试命令,对目标应用进行调试;调试数据发送模块,用于将调试数据通过云端发送给调试监控服务器;其中,所述跟踪模块包括:检测单元,用于检测操作系统版本,比较各操作系统版本的关键结构体并提取公共部分,以根据操作系统版本调用相应函数符号的跟踪函数。7.如权利要求6所述的跟踪和调试的装置,其特征在于,所述跟踪模块进一步包括:第一跟踪函数调用单元,用于在原函数开始运行前,通过控制指令修改入口函数指针,并调用针对目标应用预先设置的跟踪函数;第一执行单元,用于在第一跟踪函数调用单元调用跟踪函数时,执行跟踪函数的逻辑;还原单元,用于通过跟踪函数还原入口函数指针,并调用原函数;第二跟踪函数调用单元,用于在原函数运行完成时,通过控制指令修改入口函数指针,并调用针对目标应用预先设置的跟踪函数;第二执行单元,用于在第二跟踪函数调用单元调用跟踪函数时,执行跟踪函数的逻辑,实现对原函数运行参数的记录。8.如权利要求6所述的跟...

【专利技术属性】
技术研发人员:郭浩然梁家辉
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1