CN101516097A - 一种对函数运行进行跟踪的移动终端、服务器和方法 - Google Patents
一种对函数运行进行跟踪的移动终端、服务器和方法 Download PDFInfo
- Publication number
- CN101516097A CN101516097A CNA200810057868XA CN200810057868A CN101516097A CN 101516097 A CN101516097 A CN 101516097A CN A200810057868X A CNA200810057868X A CN A200810057868XA CN 200810057868 A CN200810057868 A CN 200810057868A CN 101516097 A CN101516097 A CN 101516097A
- Authority
- CN
- China
- Prior art keywords
- module
- function
- instruction
- data processing
- portable terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本发明提供一种对函数运行进行跟踪的移动终端、方法及服务器,其中,移动终端包括指令模块、数据处理模块和诊断引擎模块;所述数据处理模块用于执行移动终端的业务功能,并分布形式设置或***在所述源程序的预定位置;所述指令模块设置在所述数据处理模块的预定位置,用于跟踪所述数据处理模块中调用函数的运行信息;所述诊断引擎模块包括函数进入模块及函数退出模块,用于发送所述运行信息。应用上述技术方案,使得在移动终端的运行过程中,不再需要对调用函数的过程进行大量的跟踪记录,节省了所占用移动终端的资源,而且不会降低移动终端原有的运行速度。
Description
技术领域
本发明涉及移动通信监测技术,特别是指一种对函数运行进行跟踪的移动终端、服务器和方法。
背景技术
近年来随着通信技术的不断发展,移动终端的功能和通信运营商所提供的业务服务不断增加,而用户对于移动终端的多功能性、实用性、质量以及对于业务服务的要求也越来越高;同时,由于移动终端的研发测试周期不断减少,以及运营商提供的业务越来越繁多,因此导致移动终端本身,以及移动终端在进行业务服务的过程中所出现的问题逐渐增多,而如何对所出现的问题进行跟踪定位和处理,或者给出处理建议也变得越来越困难,即使有的现有技术中提出了对移动终端的函数调用进行跟踪的具体方法,也都是在源代码文件中设置跟踪函数,大量得记录函数的调用,甚至记录其它变量来对出现的异常和故障进行定位,然后再把代码文件编译成目标机器码运行,极大的浪费了移动终端有限的资源并影响了移动终端的运行速度。
发明内容
本发明的目的是提供一种对函数运行进行跟踪的移动终端、服务器和方法,用于解决现有技术中,需要对大量的函数调用甚至变量进行记录,导致占用移动终端过多资源,影响运行速度的缺陷。
一种对函数运行进行跟踪的移动终端,移动终端包括指令模块、数据处理模块和诊断引擎模块;所述数据处理模块用于执行移动终端的业务功能,分布形式设置或***在源程序的预定位置;所述指令模块设置在所述数据处理模块的预定位置,用于跟踪所述数据处理模块中调用函数的运行信息;诊断引擎模块包括函数进入模块及函数退出模块,用于发送所述运行信息。
一种对函数运行进行跟踪的方法,移动终端运行之后,开始调用函数之后如果遇到指令,则该指令记录此时的返回地址,并跟踪所述数据处理模块中调用函数的运行信息,并在终止对所述运行信息的跟踪之后继续按照原有顺序执行后续函数。
应用本发明提供的技术方案,使得在移动终端的运行过程中,不再需要对调用函数的过程进行大量的跟踪记录,节省了所占用的移动终端的资源,而且不会降低移动终端原有的运行速度。
附图说明
图1为本发明实施例的数据处理模块、指令模块和函数进入/退出模块之间的结构示意图;
图2为本发明实施例服务器与移动终端之间通信方式示意图;
图3为本发明实施例的移动终端结构示意图;
图4为本发明实施例的服务器结构示意图。
具体实施方式
为使本发明的目的、技术特征和实施效果更加清楚,下面将结合附图及具体实施例对本发明的技术方案进行详细描述。
如图1所示,箭头方向表示移动终端执行或调用函数的过程中,在程序中的运行以及跳转方向;源程序是移动终端中用于管理移动终端的程序,通常是指移动终端的***级程序,例如操作***;数据处理模块101则是用于完成具体功能的模块,通常是若干个用于实现不同功能的程序,也可以是其它插件或者驱动等程序。图中的指令模块102用于调用源程序中不同的数据处理模块101,且指令模块102包括两个子模块:函数进入模块103和函数退出模块104,当指令模块102调用数据处理模块101时,函数进入模块103位于指令模块102中保存函数返回地址的指令之后被执行,函数退出模块104则通常位于指令模块102中用于调用函数的指令之后被执行。
为了清楚完整的揭示移动终端的内部结构和工作原理,如图3所示,是移动终端的结构示意图,不仅包括数据处理模块101,还包括了指令模块102和诊断引擎模块105。其中:
诊断引擎模块105,用于记录并发送移动终端在工作过程中所跟踪的运行信息;在跟踪调用函数或调整调用函数的过程中,诊断引擎模块105可以将其中所跟踪或者调整的运行信息记录下来,并发送给远端的服务器,由制造商或者运营商进行分析,如图2所示,通常是以空中接口技术(OTA,Over-the-AirTechnology)来实现,当然不排除使用其它技术的可能;下面以常用的OTA技术为例进行描述,如图2所示,服务器通过空中接口技术OTA向位于移动终端的诊断引擎模块105发送指令,请求诊断引擎模块105发送所述运行信息,诊断引擎模块105根据该指令进行发送运行信息。所述OTA是通过空中接口对用户识别模块(SIM,Subscriber Identity Module)卡数据及应用进行远程管理的技术,空中接口可以采用无线应用协议(WAP,Wireless Application Protocol)、通用分组无线业务(GPRS,General Packet Radio Service)、码分多址接入1X(CDMA1X,Code Division Multiple Access 1X)及短消息技术。
指令模块102位于数据处理模块101的预定位置,作为一个指令容器,用于存放来自服务器的具体指令;所述预定位置通常是由制造商或者运营商所关心的问题所可能出现的位置来决定,例如如果关心的问题是关于调用特定函数以及推出特定函数时的状态,则该预定位置就是该特定函数之前或者之后的位置;所述指令可以是两条指令,或者是一条指令,或者是其它方式的指令。
函数进入模块103和函数退出模块104是所述指令模块102的子模块,其中:
函数进入模块103通常位于指令模块102中保存函数返回地址的指令之后,用于记录调用数据处理模块101的函数时应当记录下来的返回地址,甚至寄存器状态,变量赋值等数据。
函数退出模块104通常位于指令模块102中调用函数的指令之后,用于记录退出数据处理模块101的调用函数时的相应的各种数据。
当所述指令模块102包括两条指令时,具体包括:第一指令用于保存函数的返回地址;第二指令用于调用函数。
移动终端运行并开始调用函数之后,首先进入数据处理模块101,当执行并遇到所述指令模块102,该指令模块102执行第一指令,第一指令此时至少要记录返回地址;通常是将该返回地址记录在对应的堆栈中,也可以记录在其它类型的变量或者是数据结构中。执行完第一指令后,所述指令模块102执行第二指令,第二指令此时调用函数运行,所述函数执行特定特定的任务。在第二指令调用函数之后,移动终端继续运行,并由函数进入模块103记录调用函数的时刻,以及此时相应的变量、寄存器等的赋值,并设定将要完成的任务或者事件等等。在调用函数执行完毕并满足了退出该调用函数的条件时,由函数退出模块104记录预先设定的所需要记录的事件、寄存器以及其它变量等。
所述函数退出模块104与函数进入模块103既可以嵌入所述指令模块102,还可以是单独的一个模块,如果是单独的模块则可以位于数据处理模块101的某个位置,该位置通常是指令模块102之前或者之后,或者是所调用函数之前或者之后;并在所调用的函数中还可以通过引用这两个模块实现相应的记录功能。
在函数退出模块104执行完毕之后,退出调用函数的同时,取出第一指令所存放的返回地址按照该地址并返回;之后,按照数据处理模块101原有的顺序执行后续操作。
以上描述了所述指令模块102存有两条指令(即:第一指令、第二指令)时,跟踪调用函数的优选实施例;当所述指令模块102仅仅存有一条指令时,为了称谓方便,称作唯一指令,唯一指令实际是一个软中断,其优选实施例描述如下:
移动终端运行并开始调用函数之后,首先进入数据处理模块101,如果在运行时遇到指令模块102,该指令模块102执行唯一指令,唯一指令用于保存返回地址,并且实现软中断来进入操作***的内核。
与两条指令相同的是,可以在数据处理模块101所调用函数的开头放置一个函数进入模块103,该函数进入模块103可以是单独的一个模块,也可以嵌入到指令模块102中,函数进入模块103记录进入函数的时刻,以及此时相应的变量、寄存器等的赋值,并设定将要完成的任务或者事件等等;
还可以进一步提供一个函数退出模块104,该模块可以是单独的一个模块,也可以嵌入到指令模块102中,执行完上述调用的函数之后会遇到该函数退出模块104,该模块记录预先设定所需要记录的事件、寄存器以及其它变量。
为了进一步增加对移动终端调用函数的跟踪功能,甚至控制移动终端的运行,本发明实施例进一步在移动终端提供了一个调整模块106,该模块可以位于指令模块102内部,并用于在所述指令模块102的控制范围内,实现对数据处理模块101所实现的功能进行调整、修正等。例如,当数据处理模块101完成函数A之后顺序执行函数B时,可以由调整模块106决定不再执行函数B,而是在函数A执行完之后直接跳转到函数C的入口处;调整模块106还可以用于改进数据处理模块101的执行效率,例如可以在所调用的函数中引入一个新的算法或者是功能。总之,调整模块106可以灵活应用,而不应当局限于上述提出的各种具体功能。调整模块106也可以是单独的一个模块,在所调用的函数中可以通过引用该调整模块106实现相应的调整功能;也可以是嵌入在指令模块102中,可以通过在所调用的函数中设定针对调整模块106的地址或者其它方式实现对该模块的引用。
本发明实施例还提供了一种对函数运行进行跟踪的服务器,如图4所示,包括收发模块201、异常及故障诊断模块202、异常及故障管理模块203。
收发模块201用于接收来自移动终端的诊断引擎模块105的运行信息,并发送给所述异常及故障诊断模块202;
异常及故障诊断模块202用于根据所述运行信息对业务异常和设备故障信息进行分析,并可以进一步给出解决上述异常和故障的建议;
异常及故障管理模块203用于接收来自所述收发模块201的标识业务异常和设备故障信息,并根据该标识通过收发模块201发送指令到移动终端获取所述运行信息。
服务器进一步包括一个异常及故障判断模块204,该模块接收来自所述收发模块201的运行信息;异常及故障判断模块204用于判断出现的所述运行信息的类型;所述类型至少包括:内部故障、外部故障。其中,内部故障至少包括:死机、死屏;外部故障至少包括:网络信号没有达到预定强度等。
应用本发明提供的优选实施例,使得在移动终端的运行过程中,不再需要对调用函数的过程进行大量的跟踪记录,节省了所占用移动终端的资源,而且不会降低移动终端原有的运行速度,并可以为制造商和运营商提供调用函数的记录进行分析。
应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,所有的参数取值可以根据实际情况调整,且在该权利保护范围内。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
Claims (12)
1.一种对函数运行进行跟踪的移动终端,其特征在于,移动终端包括指令模块、数据处理模块和诊断引擎模块;
所述数据处理模块用于执行移动终端的业务功能,分布形式设置或***在源程序的预定位置;
所述指令模块设置在所述数据处理模块的预定位置,用于跟踪所述数据处理模块中调用函数的运行信息;
诊断引擎模块包括函数进入模块及函数退出模块,用于发送所述运行信息。
2.根据权利要求1所述的移动终端,其特征在于,当所述移动终端执行业务功能时,所述源程序中数据处理模块编译为汇编代码,并在该数据处理模块被调用时,执行所述指令模块中的跳转指令。
3.根据权利要求1所述的移动终端,其特征在于,所述指令模块进一步包括两条指令:
第一指令用于保存所述源程序中数据处理模块调用函数的返回地址;
第二指令用于调用函数。
4.根据权利要求3所述的移动终端,其特征在于,所述指令模块进一步包括一个函数进入模块和函数退出模块;
所述函数进入模块位于所述第一指令之后,用于记录进入数据处理模块的函数时应当记录的返回地址、寄存器状态、变量赋值和事件信息;
所述函数退出模块位于所述第二指令之后,用于记录退出数据处理模块的函数时应当记录的寄存器状态、变量赋值和事件信息。
5.根据权利要求1所述的移动终端,其特征在于,所述指令模块进一步包括一条唯一指令:
所述唯一指令用于保存返回地址,并且切入操作***的内核。
6.根据权利要求1所述的移动终端,其特征在于,所述指令模块进一步包括一个调整模块;
所述调整模块用于在所述指令模块调用函数的过程中,实现对数据处理模块所实现的原有功能或者结束条件进行操作。
7.一种对函数运行进行跟踪的方法,移动终端运行之后,其特征在于,开始调用函数之后如果遇到指令,则该指令记录此时的返回地址,并跟踪所述源程序中数据处理模块调用函数的运行信息;在终止对所述运行信息的跟踪之后发送所述运行信息并继续按照原有顺序执行后续函数。
8.根据权利要求7所述的方法,其特征在于,如果所述指令为两条指令,则在第一指令保存所述源程序中数据处理模块调用函数的返回地址之后,执行第二指令来调用所述调用函数。
9.根据权利要求8所述的方法,其特征在于,保存所述返回地址之后,进一步包括,记录进入所述调用时应当记录的返回地址、寄存器状态、变量赋值和事件信息;
并在调用所述调用函数之后,记录退出该调用函数时应当记录的寄存器状态、变量赋值和事件信息。
10.根据权利要求8所述的方法,其特征在于,在调用所述调用函数之后,还包括在所述调用函数运行的过程中,对源程序中数据处理模块所实现的原有功能或者结束条件进行操作。
11.一种对函数运行进行跟踪的服务器,其特征在于,该服务器包括收发模块、异常及故障诊断模块、异常及故障管理模块;
所述收发模块用于接收来自移动终端的运行信息;
所述异常及故障诊断模块用于根据所述运行信息对所述业务异常和设备故障信息进行分析;
所述异常及故障管理模块用于标识业务异常和设备故障信息,并根据该标识发送指令到移动终端获取所述运行信息。
12.根据权利要求11所述的服务器,其特征在于,所述服务器进一步包括一个异常及故障判断模块;
所述异常及故障判断模块用于判断出现的所述运行信息的类型;所述类型至少包括:内部故障、外部故障;
所述内部故障至少包括:死机、死屏;所述外部故障至少包括:网络信号没有达到预定强度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810057868XA CN101516097A (zh) | 2008-02-19 | 2008-02-19 | 一种对函数运行进行跟踪的移动终端、服务器和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810057868XA CN101516097A (zh) | 2008-02-19 | 2008-02-19 | 一种对函数运行进行跟踪的移动终端、服务器和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101516097A true CN101516097A (zh) | 2009-08-26 |
Family
ID=41040334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810057868XA Pending CN101516097A (zh) | 2008-02-19 | 2008-02-19 | 一种对函数运行进行跟踪的移动终端、服务器和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101516097A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281520A (zh) * | 2013-07-10 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 跟踪和调试的方法、装置及*** |
-
2008
- 2008-02-19 CN CNA200810057868XA patent/CN101516097A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281520A (zh) * | 2013-07-10 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 跟踪和调试的方法、装置及*** |
CN104281520B (zh) * | 2013-07-10 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 跟踪和调试的方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999716B (zh) | 虚拟机器监控***及方法 | |
CN102855430B (zh) | 基于Windows***的进程黑白名单控制方法 | |
CN106528185A (zh) | 一种应用接口管理方法和装置 | |
CN101472288A (zh) | 一种进行故障诊断的移动终端、方法及服务器 | |
CN100530111C (zh) | 一种多线程访问间接寄存器的调度方法 | |
CN102026125B (zh) | 一种漫游欢迎短信的生成方法及装置 | |
CN102883300A (zh) | 用户卡签约信息迁移方法、替换方法和装置 | |
CN103514075A (zh) | 在移动终端中监控api函数调用的方法和装置 | |
CN105589807A (zh) | 一种应用程序间组件能力泄露动态检测方法和*** | |
CN101516097A (zh) | 一种对函数运行进行跟踪的移动终端、服务器和方法 | |
CN112818341B (zh) | 一种基于操作***过滤层驱动的外接设备管控方法及装置 | |
CN110135541A (zh) | 一种基于无线射频技术的挪车***与方法 | |
CN104796867A (zh) | 一种主动登录的方法及终端 | |
CN116095013B (zh) | 一种服务请求限流方法、装置及存储介质 | |
CN205419355U (zh) | 用于电梯作业的移动终端设备、服务器和管理*** | |
CN101917696B (zh) | 归属用户服务器旁路方法及查询呼叫会话控制功能设备 | |
CN105847070A (zh) | 一种交换机故障处理方法及装置 | |
CN114268690B (zh) | 应用程序的控制方法、装置、电子设备以及存储介质 | |
CN113364820A (zh) | 物联网业务***的设备管控方法与装置 | |
CN1274169C (zh) | 限制非法移动电话的方法 | |
CN108335372A (zh) | 车辆停车管理方法、装置和存储介质 | |
CN107729088A (zh) | 一种应用程序管理方法和*** | |
CN111447609A (zh) | 一种号码动态分配方法及*** | |
CN100525348C (zh) | 一种通信***中业务信息的收集***和方法 | |
CN201035579Y (zh) | 一种对软件进行保护的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090826 |