CN106294176B - Mac OS***中应用程序故障定位的方法及*** - Google Patents

Mac OS***中应用程序故障定位的方法及*** Download PDF

Info

Publication number
CN106294176B
CN106294176B CN201610695087.8A CN201610695087A CN106294176B CN 106294176 B CN106294176 B CN 106294176B CN 201610695087 A CN201610695087 A CN 201610695087A CN 106294176 B CN106294176 B CN 106294176B
Authority
CN
China
Prior art keywords
fault
application program
log information
mac
log
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.)
Active
Application number
CN201610695087.8A
Other languages
English (en)
Other versions
CN106294176A (zh
Inventor
王峰
朱春明
朱彦东
张鹏宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Storm Group Ltd By Share Ltd
Original Assignee
Storm Group Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Storm Group Ltd By Share Ltd filed Critical Storm Group Ltd By Share Ltd
Priority to CN201610695087.8A priority Critical patent/CN106294176B/zh
Publication of CN106294176A publication Critical patent/CN106294176A/zh
Application granted granted Critical
Publication of CN106294176B publication Critical patent/CN106294176B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开Mac OS***中应用程序故障定位的方法,包括:在Mac OS***中应用程序的预定位置加入运行记录日志,将运行记录日志按记录时间先后顺序保存在对应的沙盒中;检测到Mac OS***中应用程序在运行过程中出现故障时,根据运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获带有应用程序故障位置的故障日志信息并保存在沙盒中;接收处理带有应用程序故障位置的故障日志信息的请求,根据请求从对应的沙盒中获取带有应用程序故障位置的故障日志信息。本发明能够准确定位应用程序故障。

Description

Mac OS***中应用程序故障定位的方法及***
技术领域
本发明涉及应用程序故障定位的技术领域,更具体地,涉及一种Mac OS***中应用程序故障定位的方法及***。
背景技术
Mac OS***是基于尤尼斯(Unix)内核的图形化操作***,尤尼斯内核能够支持多种处理器架构,但是由于权限等问题,一般情况下在普通个人计算机(personal computer,简称PC)上无法安装该操作***。在该***中安装应用程序也需要先获取该***的权限,而应用程序的开发人员也需要登录Mac OS***的门户网站获取管理权限,才能跟踪获取在客户端上安装的该开发人员开发的所有应用程序。
现有的Mac OS***下,只有在应用程序崩溃时才会生成崩溃日志,并在用户主动发送的情况下,***才会把生成的崩溃日志发送至开发人员的门户网站账户。而开发人员也只能通过登录门户网站账户才能获取到用户发送的应用程序崩溃日志,进而查看各个版本应用程序的崩溃情况。但是现有的这种开发人员通过登录门户网站账户获取崩溃日志的方式,存在以下弊端:
(1)、不能结合用户使用环境生成应用程序崩溃或异常的详细的日志信息,开发人员不能根据用户的使用环境及应用程序的逻辑准确定位到***中出现异常或应用程序崩溃的具***置;
(2)、由于应用程序的开发环境与用户的使用环境不同,从用户回传的崩溃日志中不能为开发人员提供用户使用该应用程序的环境及用户操作步骤,开发人员也不能基于该崩溃日志为用户寻求解决办法;
(3)、在***中应用程序崩溃时,不能及时联系开发人员进行定位解决问题,只有在开发人员登录户名网站后才能获取崩溃日志再寻求相应的解决方案,不利于用户使用体验;
(4)、现有的***中只有在应用程序崩溃时才向开发人员回传崩溃日志,对于其它应用程序卡死、运行异常等非崩溃的问题不起作用,不利于用户对应用程式的使用体验。
因此,提供一种适用于Mac OS***中应用程序故障定位的方案是本领域亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种Mac OS***中应用程序故障定位的方法及***,解决了现有技术中Mac OS***中应用程序故障不能准确定位并及时反馈给开发人员的问题。
为了解决上述技术问题,本发明提出一种Mac OS***中应用程序故障定位的方法,包括:
设置当所述Mac OS***中应用程序检测到故障日志信息时,利用消息重定向截获所述故障日志信息,并根据预定的保存路径将所述故障日志信息保存到所述Mac OS***中应用程序在本地的沙盒中;
在所述Mac OS***中应用程序的预定位置加入运行记录日志,运行所述Mac OS***中应用程序并通过所述运行记录日志记录该应用程序的运行状态及运行位置,将所述运行记录日志按记录时间先后顺序保存在对应的沙盒中;其中,
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志;
检测到所述Mac OS***中应用程序在运行过程中出现故障时,根据所述运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中;同时所述Mac OS***中应用程序根据所述带有应用程序故障位置的故障日志信息生成故障处理界面并展示给用户;
所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
进一步地,其中,在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志,进一步为:
在所述运行记录日志大小达到或超过预先设定的日志大小阈值时,根据当前的记录时间在所述沙盒内新建一个运行记录日志,用于继续记录所述Mac OS***中应用程序的运行状态及运行位置;
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志。
进一步地,其中,所述日志大小阈值为2-5兆;所述预定个数为5-10个。
进一步地,其中,所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息,进一步为:
所述Mac OS***中应用程序接收处理所述故障日志信息的请求,解析所述请求并判断到为远程控制请求时,根据所述远程控制请求连接到开发人员,并显示出所述故障日志信息;
判断到所述请求为非远程控制请求时,根据所述非远程控制请求从本地获取所述故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
进一步地,其中,所述预定位置,包括:应用程序中界面入口位置、功能模块交互位置及播放开始和结束位置。
另一方面,本发明还提供一种Mac OS***中应用程序故障定位的***,包括:故障设置模块、运行记录日志保存模块、故障处理模块及故障日志信息处理模块;其中,
所述故障设置模块,用于设置当所述Mac OS***中应用程序检测到故障日志信息时,利用消息重定向截获所述故障日志信息,并根据预定的保存路径将所述故障日志信息保存到所述Mac OS***中应用程序在本地的沙盒中;
所述运行记录日志保存模块,用于在所述Mac OS***中应用程序的预定位置加入运行记录日志,运行所述Mac OS***中应用程序并通过所述运行记录日志记录该应用程序的运行状态及运行位置,将所述运行记录日志按记录时间先后顺序保存在对应的沙盒中;其中,
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志;
所述故障处理模块,用于检测到所述Mac OS***中应用程序在运行过程中出现故障时,根据所述运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中;同时所述Mac OS***中应用程序根据所述带有应用程序故障位置的故障日志信息生成故障处理界面并展示给用户;
所述故障日志信息处理模块,用于所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
进一步地,其中,所述运行记录日志保存模块,进一步用于:
在所述运行记录日志大小达到或超过预先设定的日志大小阈值时,根据当前的记录时间在所述沙盒内新建一个运行记录日志,用于继续记录所述Mac OS***中应用程序的运行状态及运行位置;
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志。
进一步地,其中,所述日志大小阈值为2-5兆;所述预定个数为5-10个。
进一步地,其中,所述故障日志信息处理模块,进一步用于:
所述Mac OS***中应用程序接收处理所述故障日志信息的请求,解析所述请求并判断到为远程控制请求时,根据所述远程控制请求连接到开发人员,并显示出所述故障日志信息;
判断到所述请求为非远程控制请求时,根据所述非远程控制请求从本地获取所述故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
进一步地,其中,所述预定位置,包括:应用程序中界面入口位置、功能模块交互位置及应用程序中播放器播放开始和结束位置。
与现有技术相比,本发明的Mac OS***中应用程序故障定位的方法及***,实现了如下的有益效果:
(1)本发明所述的Mac OS***中应用程序故障定位的方法及***,在Mac OS***的应用程序中加入日志信息,通过消息重定向方法获取应用程序运行的日志信息,经过重定向后传输至***存储应用程序源文件的沙盒目录中,在应用程序中将该日志信息直接发送至应用程序开发人员,使得开发人员能够快捷、准确地获取应用程序故障日志信息,进而从日志信息中准确定位故障,提升了用户使用体验。
(2)本发明所述的Mac OS***中应用程序故障定位的方法及***,通过消息重定向方法获取应用程序运行故障的日志信息,直接发送至开发人员,并根据实际情况,清理***的日志信息,只保留最新的日志信息,减轻了***的压力,提升了***中应用程序故障定位的效果。
(3)本发明所述的Mac OS***中应用程序故障定位的方法及***,可以在开发过程在容易导致问题的地方添加日志信息,在应用程序出现问题时,方便定位问题;可以定位应用程序卡死的、显示异常等非崩溃问题,相对于现有技术中只能定位奔溃问题,功能性更全面;可以实现在用户使用环境下进行故障定位,方便开发人员在用户使用环境下可以更准确地复现和解决故障问题。
当然,实施本发明的任一产品必不特定需要同时达到以上所述的所有技术效果。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为本发明实施例1中所述Mac OS***中应用程序故障定位的方法的流程示意图;
图2为本发明实施例2中所述Mac OS***中应用程序故障定位的方法的流程示意图;
图3为本发明实施例3中所述Mac OS***中应用程序故障定位的方法的流程示意图;
图4为本发明实施例4中所述Mac OS***中应用程序故障定位的***的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
实施例1
如图1所示,为本实施例中所述Mac OS***中应用程序故障定位的方法的流程示意图。在本实施例中,在Mac OS***中拦截应用程序出错的定位日志信息,发送至该应用程序开发人员以便于定位故障并分析解决该应用程序故障的方案。本实施例中所述Mac OS***中应用程序故障定位的方法的步骤如下:
步骤101、设置当所述Mac OS***中应用程序检测到故障日志信息时,利用消息重定向截获所述故障日志信息,并根据预定的保存路径将所述故障日志信息保存到所述MacOS***中应用程序在本地的沙盒中。
消息重定向(Method swizzling)的方法,指的是改变一个已存在数据选择器对应的实现过程。数据选择器(data selector)根据给定的输入地址,从一组输入信号中选出指定的输入信号传输至输出端的组合逻辑电路从而实现定向传输所述输入信号,有时也把它叫做多路选择器或多路调制器(multiplexer)。消息重定向依赖于***中函数的调用,能够在***运行时通过改变调度表(dispatch table)中数据选择器到最终函数间的映射关系,从而改变***中消息文件的传输方向。
优选地,在本步骤中,将所述故障日志信息保存在本地应用程序的沙盒中。沙盒,是指在Mac OS***中,用以存放应用程序源文件(包括资源文件和可执行文件)的存储空间,应用程序只能在为该程序创建的存储空间中读取数据文件,不可以访问其它地方,此存储空间被成为该应用程序的沙盒。沙盒包括如下特点:每个应用程序都有自己的沙盒;应用程序不能翻过自己沙盒的围墙去访问别的存储空间的内容;应用程序请求的数据都要通过权限检测,不符合条件的不会被放行。
在现有的Mac OS***下,在该***中运行的应用程序只有在崩溃的情况下,才会生成崩溃日志通过Mac OS***传送至门户网站,在开发人员登录所述门户网站后才能获取到该崩溃日志,不利于开发人员及时获取用户的崩溃日志进行及时处理。
步骤102、在所述Mac OS***中应用程序的预定位置加入运行记录日志,运行所述Mac OS***中应用程序并通过所述运行记录日志记录该应用程序的运行状态及运行位置,将所述运行记录日志按记录时间先后顺序保存在对应的沙盒中;其中,
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志。
优选地,所述预定位置为所述应用程序的预定位置,在所述应用程序的预定位置加入日志,通过该日志记录用户在相邻两预定位置之间进行的操作包括:用户通过界面执行的应用程序操作、应用程序中各个模块间的调用接口信息、播放核心的播放状态等。
通过在预定位置加入日志,记录用户使用所述应用程序的操作日志以及操作环境,有利于开发人员通过日志再现用户使用应用程序的过程,方便开发人员管理、监控所述应用程序。
步骤103、检测到所述Mac OS***中应用程序在运行过程中出现故障时,根据所述运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中;同时所述Mac OS***中应用程序根据所述带有应用程序故障位置的故障日志信息生成故障处理界面并展示给用户。
优选地,在利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中,同时根据所述带有应用程序故障位置的故障日志信息生成故障提醒消息,用以提醒用户应用程序出现故障。
在应用程序出现故障时,***会获取用户的用户信息,以便发开人员从多个使用用户中定位到目标用户,其中,所述用户信息包括:用户的ID、用户的IP地址、用户使用的版本号等。
当用户使用应用程序出现崩溃、卡死、播放异常或其它问题时,用户可以通过应用程序(高级选项的按钮)点击上传故障日志信息,这样程序会自动把故障日志信息通过超文本传输协议(http)服务器回传到开发人员的后台服务器中;或者用户也可以联系开发人员,开发人员通过远程连接用户的设备查看故障日志信息,根据所述故障日志信息排查问题。
步骤104、所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议将所述故障日志信息传输至开发人员。
应用程序的开发人员只有拿到用户运行应用程序出现问题的具体详情,才能更好地再现用户运行该应用程序的故障位置以及出现该故障的应用程序运行环境,进而定位到故障位置,结合运行环境解决故障。
本实施例在Mac OS***的应用程序中加入日志信息,通过消息重定向方法获取应用程序运行的日志信息,经过重定向后传输至***存储应用程序源文件的沙盒中,在应用程序中将该日志信息直接发送至应用程序开发人员,使得开发人员能够快捷、准确地获取应用程序故障日志信息,进而从日志信息中确定定位故障,提升了用户使用体验。
实施例2
如图2所示,为本实施例中所述Mac OS***中应用程序故障定位的方法的流程示意图。本实施例在实施例1的基础上说明了在Mac OS***上应用程序中添加日志的位置以及对日至进行更新出来的具体内容。本实施例所述的Mac OS***中应用程序故障定位的方法,包括如下步骤:
步骤201、在Mac OS***上安装应用程序,并在所述应用程序的预定位置加入日志,通过所述日志记录所述应用程序的运行状态,且将所述日志保存到本地的沙盒中。所述运行状态包括:应用程序正常运行、应用程序崩溃、应用程序卡死、应用程序播放异常等运行状态,以及这些运行状态对应的运行时间及运行位置。
所述预定位置,包括:应用程序中界面入口位置、功能模块交互位置及播放开始和结束位置。
步骤202、在Mac OS***上,设定所述日志不超过预定大小,将保存在本地的所述日志按照时间先后排序,按所述排序顺序从后往前获取预定个数的日志保存在本地,并删去多于的所述日志。
优选地,所述预定大小为2-5M,所述预定个数为5-10个。当本地保存的日志数量超过预定个数(以5个为例)时,***自动按日志生成时间从后往前获取预定个数的日志进行保存,而删去在前面的超过预定个数的日志。本步骤的设置有利于采用去旧留新,始终保证本地只有不超过一定大小的最新日志,在不影响定位应用程序故障的基础上,防止在本地存储过多的日志数据,有利于节约***资源。
步骤203、检测所述应用程序的运行状态,当所述应用程序出现故障时,根据本地存储的所述日志及用户信息,生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述故障日志信息并保存在本地。
步骤204、根据所述故障日志信息生成提醒消息,以提醒用户应用程序出现故障,并接收用户发送所述故障日志信息的请求。
在本步骤中,根据故障日志信息生成提醒消息,在用户自愿的情况下,将所述故障日志信息回传到开发人员,以供开发人员进行分析解决问题。
步骤205、根据用户发送所述故障日志信息的请求,从本地获取所述故障日志信息,并利用超文本传输协议将所述故障日志信息传输至开发人员。
步骤206、还可以在提醒用户应用程序出现故障后,接收用户请求处理所述故障日志信息的远程请求,根据处理所述故障日志信息的远程请求连接到开发人员,并显示出所述故障日志信息。
本实施例通过消息重定向方法获取Mac OS***上应用程序运行故障的日志信息,并根据实际情况,清理***的日志信息,只保留最新的日志信息,减轻了***的压力,提升了***中应用程序故障定位的效果。
实施例3
如图3所示,为本发明所述Mac OS***中应用程序故障定位的方法的一个具体实施例的流程示意图,本实施例所述的方法包括如下步骤:
步骤301、在Mac OS***上安装应用程序,并在所述应用程序的预定位置加入日志,通过所述日志记录所述应用程序的运行状态,且将所述日志保存到本地的沙盒中。
步骤302、在Mac OS***上,设定所述日志大小不超过2M,将保存在本地的所述日志按照时间先后排序,按所述排序顺序从后往前获取5个的日志保存在本地,并删去多于的所述日志;当所述日志不超过5个时,将当前的日志都保存在本地。
步骤303、检测所述应用程序的运行状态,判断所述应用程序是否出现故障。所述故障包括:应用程序崩溃、应用程序卡死、应用程序没按原定的正常运行方式而出现的运行异常等故障问题。
步骤304、当所述应用程序未出现故障时,继续执行应用程序并记录所述日志。
步骤305、当所述应用程序出现故障时,根据本地存储的所述日志及用户信息,生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述故障日志信息并保存在本地。
步骤306、根据所述故障日志信息生成提醒消息,以提醒用户应用程序出现故障。
步骤307、用户根据所述提醒消息下达处理所述故障日志信息的指令。
步骤308、在Mac OS***上,根据用户下达的处理所述故障日志信息的指令及用户信息生成处理所述故障日志信息的请求,并根据所述请求判断是否为远程控制请求。
步骤309、当所述请求为远程控制请求时,根据处理所述故障日志信息的远程请求连接到开发人员,并显示出所述故障日志信息。
步骤310、当所述请求不为远程控制请求时,从本地获取所述故障日志信息,并利用超文本传输协议将所述故障日志信息传输至开发人员。
开发人员可以通过所述故障日志信息分析出应用程序的故障位置,进而找出解决该故障的方案发送至用户。
本实施例所述的Mac OS***中应用程序故障定位的方法,可以定位应用程序卡死的、显示异常等非崩溃问题,相对于现有技术中只能定位奔溃问题,功能性更全面;可以实现在用户使用环境下进行故障定位,方便开发人员在用户使用环境下可以更准确地复现和解决故障问题。
实施例4
如图4所示,为本实施例所述Mac OS***中应用程序故障定位的***的结构示意图。本实施例所述的***用于实施上述实施例中所述的Mac OS***中应用程序故障定位的方法。本实施例的***包括:故障设置模块401、运行记录日志保存模块402、故障处理模块403及故障日志信息处理模块404。
其中,所述故障设置模块401与所述故障处理模块403相藕接,用于设置当所述MacOS***中应用程序检测到故障日志信息时,利用消息重定向截获所述故障日志信息,并根据预定的保存路径将所述故障日志信息保存到所述Mac OS***中应用程序在本地的沙盒中。
所述运行记录日志保存模块402与所述故障处理模块403相藕接,用于在所述MacOS***中应用程序的预定位置加入运行记录日志,运行所述Mac OS***中应用程序并通过所述运行记录日志记录该应用程序的运行状态及运行位置,将所述运行记录日志按记录时间先后顺序保存在对应的沙盒中;其中,
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志。
所述故障处理模块403与所述故障设置模块401及运行记录日志保存模块402相藕接,用于检测到所述Mac OS***中应用程序在运行过程中出现故障时,根据所述运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中;同时所述Mac OS***中应用程序根据所述带有应用程序故障位置的故障日志信息生成故障处理界面并展示给用户。
所述故障日志信息处理模块404与所述故障处理模块403,用于所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息至开发人员。
进一步地,其中,所述故障处理模块403还用于:
在所述运行记录日志大小达到或超过预先设定的日志大小阈值时,根据当前的记录时间在所述沙盒内新建一个运行记录日志,用于继续记录所述Mac OS***中应用程序的运行状态及运行位置;
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志,并删去多于的日志。
其中,所述预定大小为2-5M,所述预定个数为5-10个。
进一步地,其中,所述故障日志信息处理模块404还用于:
所述Mac OS***中应用程序接收处理所述故障日志信息的请求,解析所述请求并判断到为远程控制请求时,根据所述远程控制请求连接到开发人员,并显示出所述故障日志信息;
判断到所述请求为非远程控制请求时,根据所述非远程控制请求从本地获取所述故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
在上述***中,所述预定位置,包括:应用程序中界面入口位置、功能模块交互位置及应用程序中播放器播放开始和结束位置。
通过以上各个实施例可知,本发明的Mac OS***中应用程序故障定位的方法及***,存在的有益效果是:
(1)本发明所述的Mac OS***中应用程序故障定位的方法及***,在Mac OS***的应用程序中加入日志信息,通过消息重定向方法获取应用程序运行的日志信息,经过重定向后传输至***存储应用程序源文件的沙盒目录中,在应用程序中将该日志信息直接发送至应用程序开发人员,使得开发人员能够快捷、准确地获取应用程序故障日志信息,进而从日志信息中准确定位故障,提升了用户使用体验。
(2)本发明所述的Mac OS***中应用程序故障定位的方法及***,通过消息重定向方法获取应用程序运行故障的日志信息,直接发送至开发人员,并根据实际情况,清理***的日志信息,只保留最新的日志信息,减轻了***的压力,提升了***中应用程序故障定位的效果。
(3)本发明所述的Mac OS***中应用程序故障定位的方法及***,可以在开发过程在容易导致问题的地方添加日志信息,在应用程序出现问题时,方便定位问题;可以定位应用程序卡死的、显示异常等非崩溃问题,相对于现有技术中只能定位奔溃问题,功能性更全面;可以实现在用户使用环境下进行故障定位,方便开发人员在用户使用环境下可以更准确地复现和解决故障问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种Mac OS***中应用程序故障定位的方法,其特征在于,包括:
设置当所述Mac OS***中应用程序检测到故障日志信息时,利用消息重定向截获所述故障日志信息,并根据预定的保存路径将所述故障日志信息保存到所述Mac OS***中应用程序在本地的沙盒中;
在所述Mac OS***中应用程序的预定位置加入运行记录日志,运行所述Mac OS***中应用程序并通过所述运行记录日志记录该应用程序的运行状态及运行位置,将所述运行记录日志按记录时间先后顺序保存在对应的沙盒中;其中,
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志;
检测到所述Mac OS***中应用程序在运行过程中出现故障时,根据所述运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中;同时所述Mac OS***中应用程序根据所述带有应用程序故障位置的故障日志信息生成故障处理界面并展示给用户;
所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
2.根据权利要求1所述的Mac OS***中应用程序故障定位的方法,其特征在于,在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志,进一步为:
在所述运行记录日志大小达到或超过预先设定的日志大小阈值时,根据当前的记录时间在所述沙盒内新建一个运行记录日志,用于继续记录所述Mac OS***中应用程序的运行状态及运行位置;
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志。
3.根据权利要求2所述的Mac OS***中应用程序故障定位的方法,其特征在于,所述日志大小阈值为2-5兆;所述预定个数为5-10个。
4.根据权利要求1所述的Mac OS***中应用程序故障定位的方法,其特征在于,所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息,进一步为:
所述Mac OS***中应用程序接收处理所述故障日志信息的请求,解析所述请求并判断到为远程控制请求时,根据所述远程控制请求连接到开发人员,并显示出所述故障日志信息;
判断到所述请求为非远程控制请求时,根据所述非远程控制请求从本地获取所述故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
5.根据权利要求1所述的Mac OS***中应用程序故障定位的方法,其特征在于,所述预定位置,包括:应用程序中界面入口位置、功能模块交互位置及播放开始和结束位置。
6.一种Mac OS***中应用程序故障定位的***,其特征在于,包括:故障设置模块、运行记录日志保存模块、故障处理模块及故障日志信息处理模块;其中,
所述故障设置模块,用于设置当所述Mac OS***中应用程序检测到故障日志信息时,利用消息重定向截获所述故障日志信息,并根据预定的保存路径将所述故障日志信息保存到所述Mac OS***中应用程序在本地的沙盒中;
所述运行记录日志保存模块,用于在所述Mac OS***中应用程序的预定位置加入运行记录日志,运行所述Mac OS***中应用程序并通过所述运行记录日志记录该应用程序的运行状态及运行位置,将所述运行记录日志按记录时间先后顺序保存在对应的沙盒中;其中,
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志;
所述故障处理模块,用于检测到所述Mac OS***中应用程序在运行过程中出现故障时,根据所述运行记录日志及用户信息生成带有应用程序故障位置的故障日志信息,利用消息重定向截获所述带有应用程序故障位置的故障日志信息并保存在所述沙盒中;同时所述Mac OS***中应用程序根据所述带有应用程序故障位置的故障日志信息生成故障处理界面并展示给用户;
所述故障日志信息处理模块,用于所述Mac OS***中应用程序接收处理所述带有应用程序故障位置的故障日志信息的请求,根据所述请求从对应的沙盒中获取所述带有应用程序故障位置的故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
7.根据权利要求6所述的Mac OS***中应用程序故障定位的***,其特征在于,所述运行记录日志保存模块,进一步用于:
在所述运行记录日志大小达到或超过预先设定的日志大小阈值时,根据当前的记录时间在所述沙盒内新建一个运行记录日志,用于继续记录所述Mac OS***中应用程序的运行状态及运行位置;
在所述沙盒中的所述运行记录日志的数量超过预定个数时,按照所述记录时间先后顺序倒序保留所述预定个数的所述运行记录日志。
8.根据权利要求7所述的Mac OS***中应用程序故障定位的***,其特征在于,所述日志大小阈值为2-5兆;所述预定个数为5-10个。
9.根据权利要求6所述的Mac OS***中应用程序故障定位的***,其特征在于,所述故障日志信息处理模块,进一步用于:
所述Mac OS***中应用程序接收处理所述故障日志信息的请求,解析所述请求并判断到为远程控制请求时,根据所述远程控制请求连接到开发人员,并显示出所述故障日志信息;
判断到所述请求为非远程控制请求时,根据所述非远程控制请求从本地获取所述故障日志信息,并利用超文本传输协议传输所述带有应用程序故障位置的故障日志信息。
10.根据权利要求6所述的Mac OS***中应用程序故障定位的***,其特征在于,所述预定位置,包括:应用程序中界面入口位置、功能模块交互位置及应用程序中播放器播放开始和结束位置。
CN201610695087.8A 2016-08-19 2016-08-19 Mac OS***中应用程序故障定位的方法及*** Active CN106294176B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610695087.8A CN106294176B (zh) 2016-08-19 2016-08-19 Mac OS***中应用程序故障定位的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610695087.8A CN106294176B (zh) 2016-08-19 2016-08-19 Mac OS***中应用程序故障定位的方法及***

Publications (2)

Publication Number Publication Date
CN106294176A CN106294176A (zh) 2017-01-04
CN106294176B true CN106294176B (zh) 2018-11-06

Family

ID=57661809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610695087.8A Active CN106294176B (zh) 2016-08-19 2016-08-19 Mac OS***中应用程序故障定位的方法及***

Country Status (1)

Country Link
CN (1) CN106294176B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107092552B (zh) * 2017-03-10 2020-09-04 武汉斗鱼网络科技有限公司 一种日志管理方法及装置
CN107872353A (zh) * 2017-12-27 2018-04-03 北京奇艺世纪科技有限公司 一种故障定位方法及装置
CN108519950A (zh) * 2018-04-13 2018-09-11 深圳市国富前海区块链技术股份有限公司 终端、应用软件的故障检测方法及其装置和可读存储介质
CN109144884A (zh) * 2018-09-29 2019-01-04 平安科技(深圳)有限公司 程序错误定位方法、装置、及计算机可读存储介质
CN111597093B (zh) * 2019-02-20 2024-04-16 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN110096440B (zh) * 2019-04-26 2023-04-18 厦门网宿有限公司 一种日志处理方法及装置
CN111367867B (zh) * 2020-03-05 2023-03-21 腾讯云计算(北京)有限责任公司 日志信息处理方法、装置、电子设备及存储介质
CN112035329A (zh) * 2020-09-17 2020-12-04 中国银行股份有限公司 移动端应用日志的获取方法、装置、计算机设备及介质
CN113282971B (zh) * 2021-05-24 2024-05-17 康键信息技术(深圳)有限公司 测试日志的处理方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286429A (zh) * 1999-11-20 2001-03-07 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
CN101046765A (zh) * 2006-03-29 2007-10-03 华为技术有限公司 一种定位软件故障的方法
KR20080054592A (ko) * 2006-12-13 2008-06-18 엘지노텔 주식회사 내장형 시스템에서 고정위치 메모리 영역을 이용한 로그저장 방법
CN101359959A (zh) * 2008-09-17 2009-02-04 中兴通讯股份有限公司 一种用于故障定位分析的信息获取方法
CN102880539A (zh) * 2012-08-23 2013-01-16 福建升腾资讯有限公司 基于wes***的日志重定向方法
JP2014071796A (ja) * 2012-10-01 2014-04-21 Nec Corp マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラム
CN104346265A (zh) * 2013-07-29 2015-02-11 比亚迪股份有限公司 终端设备及其日志信息的获取方法和装置
CN104869019A (zh) * 2015-05-18 2015-08-26 百度在线网络技术(北京)有限公司 用于定位故障的反馈方法、装置及服务器

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286429A (zh) * 1999-11-20 2001-03-07 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
CN101046765A (zh) * 2006-03-29 2007-10-03 华为技术有限公司 一种定位软件故障的方法
KR20080054592A (ko) * 2006-12-13 2008-06-18 엘지노텔 주식회사 내장형 시스템에서 고정위치 메모리 영역을 이용한 로그저장 방법
CN101359959A (zh) * 2008-09-17 2009-02-04 中兴通讯股份有限公司 一种用于故障定位分析的信息获取方法
CN102880539A (zh) * 2012-08-23 2013-01-16 福建升腾资讯有限公司 基于wes***的日志重定向方法
JP2014071796A (ja) * 2012-10-01 2014-04-21 Nec Corp マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラム
CN104346265A (zh) * 2013-07-29 2015-02-11 比亚迪股份有限公司 终端设备及其日志信息的获取方法和装置
CN104869019A (zh) * 2015-05-18 2015-08-26 百度在线网络技术(北京)有限公司 用于定位故障的反馈方法、装置及服务器

Also Published As

Publication number Publication date
CN106294176A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106294176B (zh) Mac OS***中应用程序故障定位的方法及***
KR102268355B1 (ko) 클라우드 배치 기반구조 검증 엔진
US8990775B2 (en) Collaborative software debugging in a distributed system with dynamically displayed chat sessions
US20120102460A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Dynamic Breakpoints
US8756577B2 (en) Collaborative software debugging in a distributed system with private debug sessions
US9411709B2 (en) Collaborative software debugging in a distributed system with client-specific event alerts
US7856639B2 (en) Monitoring and controlling applications executing in a computing node
JP5104958B2 (ja) 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム
US8806438B2 (en) Collaborative software debugging in a distributed system with variable-specific messages
US8656360B2 (en) Collaborative software debugging in a distributed system with execution resumption on consensus
US20120084758A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Variable Evaluation
US10152367B2 (en) System dump analysis
CN108920690B (zh) 可视化网络安全审计方法及***
US20120278790A1 (en) Collaborative Software Debugging In A Distributed System With Real-Time Variable Modification Indicators
US20150006961A1 (en) Capturing trace information using annotated trace output
MX2015007247A (es) Metodo para administracion de aplicacion, asi como dispositivo, servidor y dispositivo terminal del mismo.
US9009673B2 (en) Collaborative software debugging in a distributed system with collaborative step over operation
US20120102459A1 (en) Collaborative Software Debugging In A Distributed System With Stacked Event Group Management
US20120102466A1 (en) Collaborative Software Debugging In A Distributed System With Graphic Representation Of Source Code Ownership Assignments
US8850397B2 (en) Collaborative software debugging in a distributed system with client-specific display of local variables
US11294746B2 (en) Extracting moving image data from an error log included in an operational log of a terminal
US8739127B2 (en) Collaborative software debugging in a distributed system with symbol locking
US20120102467A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Display Location Upon Event Notification
CN109634838A (zh) 定位应用程序故障的方法、装置、存储介质和电子设备
US8171345B2 (en) Disablement of an exception generating operation of a client system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PP01 Preservation of patent right

Effective date of registration: 20190705

Granted publication date: 20181106

PP01 Preservation of patent right