调试信息的获取方法、装置、终端及计算机可读存储介质制造方法及图纸

技术编号:21913786 阅读:16 留言:0更新日期:2019-08-21 12:22
本申请属于通信技术领域,尤其涉及一种调试信息的获取方法、装置、终端及计算机可读存储介质,其中,所述获取方法包括:获取发生异常的应用进程的第一核心转储文件;调用调试接口,并根据所述应用进程对应的应用程序的可执行文件对所述第一核心转储文件进行解析,得到第一调试信息,所述第一调试信息包含Java层调用栈信息,解决了Android应用程序的进程发生异常时无法获取到完整的调试信息的技术问题。

Acquisition method, device, terminal and computer readable storage medium of debugging information

【技术实现步骤摘要】
调试信息的获取方法、装置、终端及计算机可读存储介质
本申请属于通信
,尤其涉及一种调试信息的获取方法、装置、终端及计算机可读存储介质。
技术介绍
目前,在安卓(Android)应用程序的进程发生异常时,通常需要获取调试信息进行问题分析,并修复分析出的问题,使得应用程序能够正常运行。然而,当Android应用程序的进程发生异常的复现概率较低时,通常无法进行在线调试,而需要获取该进程的核心转储(coredump)文件,并对该文件进行解析才能得到更多有效的调试信息。但是,目前Android应用程序的进程发生异常时无法获取到完整的调试信息。
技术实现思路
本申请实施例提供一种调试信息的获取方法、装置、终端及计算机可读存储介质,可以解决Android应用程序的进程发生异常时无法获取到完整的调试信息的技术问题。本申请实施例第一方面提供一种调试信息的获取方法,包括:获取发生异常的应用进程的第一核心转储文件;调用调试接口,并根据所述应用进程对应的应用程序的可执行文件对所述第一核心转储文件进行解析,得到第一调试信息,所述第一调试信息包含Java层调用栈信息。本申请实施例第二方面提供一种调试信息的获取装置,包括:获取单元,用于获取发生异常的应用进程的第一核心转储文件;解析单元,用于调用调试接口,并根据所述应用进程对应的应用程序的可执行文件对所述第一核心转储文件进行解析,得到第一调试信息,所述第一调试信息包含Java层调用栈信息。本申请实施例第三方面提供一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。本申请实施例第四方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。本申请实施例中,通过获取发生异常的应用进程的第一核心转储文件,并调用调试接口,根据应用进程对应的应用程序的可执行文件对第一核心转储文件进行解析,得到第一调试信息,该第一调试信息为包含Java层调用栈信息的完整的调试信息,解决了Android应用程序的进程发生异常时无法获取到完整的调试信息的技术问题。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1是本申请实施例提供的一种调试信息的获取方法的第一实现流程示意图;图2是本申请实施例提供的一种调试信息的获取方法步骤102的具体实现流程示意图;图3是本申请实施例提供的odex格式的可执行文件记录的Java层的各个变量和各个类之间的对应关系的结构示意图;图4是本申请实施例提供的一种调试信息的获取方法步骤202的具体实现示意图;图5是本申请实施例提供的一种调试信息的获取方法的第二实现流程示意图;图6是本申请实施例提供的一种调试信息的获取方法步骤103的具体实现示意图;图7是本申请实施例提供的一种调试信息的获取方法的第三实现流程示意图;图8是本申请实施例提供的调试信息的获取装置的结构示意图;图9是本申请实施例提供的终端的结构示意图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。目前,当Android应用程序的进程发生异常的复现概率较低时,通常无法进行在线调试,需要依靠命令行工具logcat得到程序的log信息,并依据该log信息进行问题分析。然而,由于logcat中的有效消息很少,不足以进行问题分析。因此,需要获取该进程的核心转储文件coredump,并对该文件进行解析才能得到更多有效的调试信息。由于目前Android平台使用的是ART机制的虚拟机,不是基于Java机制的虚拟机,因此,即使获取到coredump文件,也无法从coredump文件中提取出有效的java层的调用栈信息,造成获取的调试信息不够完整。本申请实施例中,通过获取发生异常的应用进程的第一核心转储文件,并调用调试接口,根据应用进程对应的应用程序的可执行文件对第一核心转储文件进行解析,得到第一调试信息,该第一调试信息为包含Java层调用栈信息的完整的调试信息,解决了Android应用程序的进程发生异常时无法获取到完整的调试信息的技术问题。如图1示出了本申请实施例提供的一种调试信息的获取方法的实现流程示意图,该方法应用于终端,可以由终端上配置的调试信息的获取装置执行,适用于需获取包含Java层调用栈信息的调试信息的情形。其中,所述终端可以为电脑、服务器等智能终端,所述调试信息的获取方法可以包括步骤101至步骤102。步骤101,获取发生异常的应用进程的第一核心转储文件。本申请获取调试信息的方式是在应用进程的异常无法复现,或复现概率低的情况下,直接在应用进程发生异常后,获取发生异常的应用进程的离线的第一核心转储文件,对该第一核心转储文件进行解析,得到第一调试信息。在实际应用场景中,当手机等终端设备上运行的应用程序的应用进程发生异常时,该终端设备的操作系统的保护机制会生成第一核心转储文件,该第一核心转储文件记录有应用进程发生异常时的内存调用、堆栈引用等信息,可以帮助开发人员或维护人员了解异常发生当时的环境参数和信息。其中,该应用进程可以为系统核心进程,也可以为某一应用的应用进程。上述获取应用进程的第一核心转储文件的方式可以包括从服务器中获取应用进程的第一核心转储文件,或者从应用进程发生异常时的工作目录下拷贝第一核心转储文件。例如,上述终端设备上运行的应用程序的应用进程发生异常时,终端设备的操作系统生成应用进程的第一核心转储文件,并将其发送到预设的服务器中,以便开发人员或维护人员能够从服务器中获取应用进程的第一核心转储文件,不会发生第一核心转储文件丢失的情况。在本申请的一些实施方式中,上述获取发生异常的应用进程的第一核心转储文件,可以包括:按照预设监控周期,获取发生异常的应用进程的第一核心转储文件。由于应用程序的应用进程发生异常时,将不能正常提供相应的服务,因此,为了使应用进程发生异常时,可以被尽快地发现,本申请实施例中,可以通过按照预设监控周期,从服务本文档来自技高网...

【技术保护点】
1.一种调试信息的获取方法,其特征在于,包括:获取发生异常的应用进程的第一核心转储文件;通过调用调试接口,并根据所述应用进程对应的应用程序的可执行文件对所述第一核心转储文件进行解析,得到第一调试信息,所述第一调试信息包含Java层调用栈信息。

【技术特征摘要】
1.一种调试信息的获取方法,其特征在于,包括:获取发生异常的应用进程的第一核心转储文件;通过调用调试接口,并根据所述应用进程对应的应用程序的可执行文件对所述第一核心转储文件进行解析,得到第一调试信息,所述第一调试信息包含Java层调用栈信息。2.如权利要求1所述的获取方法,其特征在于,所述调用调试接口,并根据所述应用进程对应的应用程序的可执行文件对所述第一核心转储文件进行解析,包括:获取所述应用进程对应的应用程序安装时生成的可执行文件,所述可执行文件记录有Java层的各个变量和各个类之间的对应关系;利用调试命令获取所述第一核心转储文件中的全局变量类,并根据所述可执行文件记录的Java层的各个变量和各个类之间的对应关系对所述全局变量类中包含的各个类进行访问,得到所述Java层调用栈信息。3.如权利要求1所述的获取方法,其特征在于,在得到所述第一调试信息之后,还包括:对所述第一调试信息进行可视化处理,得到第二调试信息。4.如权利要求3所述的获取方法,其特征在于,所述对所述第一调试信息进行可视化处理,得到第二调试信息,包括:对所述第一调试信息进行封装,并将封装后的所述第一调试信息发送给可视化工具进行可视化处理,得到第二调试信息。5.如权利要求4所述的获取方法,其特征在于,所述对所述第一调试信息进行封装,并将封装后的所述第一调试信息发送给可视化工具进行可视化处理,得到第二调试信息,包括:利用jdwp协议对所述第一调试信息进行封...

【专利技术属性】
技术研发人员:陈岩
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:广东,44

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

1