CN110704302A - 映射关系建立方法、装置及系统崩溃分流的方法与装置 - Google Patents

映射关系建立方法、装置及系统崩溃分流的方法与装置 Download PDF

Info

Publication number
CN110704302A
CN110704302A CN201910824937.3A CN201910824937A CN110704302A CN 110704302 A CN110704302 A CN 110704302A CN 201910824937 A CN201910824937 A CN 201910824937A CN 110704302 A CN110704302 A CN 110704302A
Authority
CN
China
Prior art keywords
offset
system crash
source code
symbol
code information
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.)
Granted
Application number
CN201910824937.3A
Other languages
English (en)
Other versions
CN110704302B (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.)
Seashell Housing Beijing Technology Co Ltd
Original Assignee
Beike Technology Co 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 Beike Technology Co Ltd filed Critical Beike Technology Co Ltd
Priority to CN201910824937.3A priority Critical patent/CN110704302B/zh
Publication of CN110704302A publication Critical patent/CN110704302A/zh
Application granted granted Critical
Publication of CN110704302B publication Critical patent/CN110704302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/49Partial evaluation
    • 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/3624Software debugging by performing operations on the source code, e.g. via a compiler

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及移动通信技术领域,公开一种用于系统崩溃分流的映射关系建立方法、建立装置、方法及装置,该系统至少包括由来自多个业务组件的源码和静态库经编译链接生成的应用程序。所述建立方法包括:提取多个业务组件的目录,目录包括业务组件与关于源码信息的编译文件之间的对应关系;对来自多个业务组件的源码及静态库进行编译链接,以生成包括与源码信息相对应的符号的偏移量与编译文件之间的对应关系的链接对应关系文件;及基于业务组件与编译文件之间的对应关系及偏移量与编译文件之间的对应关系,建立应用程序、业务组件及偏移量之间的第一映射关系。本发明在不受编码规范影响的情况下,可将系统崩溃分流到对应的业务组件,且准确率高。

Description

映射关系建立方法、装置及系统崩溃分流的方法与装置
技术领域
本发明涉及移动通信技术领域,具体地涉及用于系统崩溃分流的映射关系建立方法、建立装置、用于系统崩溃分流的方法及装置。
背景技术
第三方的系统崩溃(Crash)平台无法在iOS应用程序(App)发生崩溃后,将崩溃起因分发到具体的业务线及平台。目前,各大公司内部的分流方案是简单通过匹配符号前缀来确定导致系统崩溃的业务方,其中,符号是指用于标识被编译的源码的函数、属性、类名、变量名等等信息。
现有技术中所采用的上述用于系统崩溃分流的方法具有以下缺点:1、第三方无法执行分流工作;2、受编码规范的影响大且准确率不稳定。
发明内容
本发明的目的是提供一种用于系统崩溃分流的映射关系建立方法、建立装置、用于系统崩溃分流的方法及装置,其在不受编码规范影响的情况下,可将系统崩溃分流到对应的业务组件(即业务方),且准确率高。
为了实现上述目的,本发明一方面提供一种用于系统崩溃分流的映射关系的建立方法,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,该建立方法包括:提取多个业务组件的目录,该目录包括业务组件与关于源码信息的编译文件之间的对应关系;对来自所述多个业务组件的源码及静态库进行编译与链接,以生成关于所述应用程序的链接对应关系文件,该链接对应关系文件包括与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;以及基于所述业务组件与所述编译文件之间的对应关系及所述符号的偏移量与所述编译文件之间的对应关系,建立所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系。
优选地,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该建立方法还包括:导出所述动态库的源码信息相对应的符号的偏移量;以及建立所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系。
优选地,所述导出所述动态库的源码信息相对应的符号的偏移量包括:采用快速查看工具Objdump导出所述动态库的源码信息相对应的符号的偏移量。
本发明第二方面提供一种用于系统崩溃分流的映射关系的建立装置,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,该建立装置包括:提取模块,用于提取多个业务组件的目录,该目录包括业务组件与关于源码信息的编译文件之间的对应关系;生成模块,用于对来自所述多个业务组件的源码及静态库进行编译与链接,以生成关于所述应用程序的链接对应关系文件,该链接对应关系文件包括与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;以及第一映射关系建立模块,用于基于所述业务组件与所述编译文件之间的对应关系及所述符号的偏移量与所述编译文件之间的对应关系,建立所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系。
优选地,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该建立装置还包括:导出模块,用于导出所述动态库的源码信息相对应的符号的偏移量;以及第二映射关系建立模块,用于建立所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系。
优选地,所述导出模块用于导出所述动态库的源码信息相对应的符号的偏移量包括:采用快速查看工具Objdump导出所述动态库的源码信息相对应的符号的偏移量。
通过上述技术方案,本发明创造性地首先提取多个业务组件与关于源码信息的编译文件之间的对应关系;然后对来自所述多个业务组件的源码与静态库进行编译与链接,从而生成与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;最后基于上述两个对应关系,建立应用程序、业务组件及符号的偏移量之间的映射关系,由此,在不受编码规范影响的情况下,基于所建立的所述映射关系可确定导致系统崩溃的业务组件(即业务方),且准确率高。
本发明第三方面提供一种用于系统崩溃分流的方法,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,该方法包括:基于系统崩溃信息,获取导致系统崩溃的应用程序及相应的与来自所述多个业务组件中的一个或多个第一业务组件的源码信息相对应的符号的偏移量;以及基于所述的用于系统崩溃分流的映射关系的建立方法所建立的第一映射关系、所述应用程序及相应的所述符号的偏移量,确定导致系统崩溃的所述第一业务组件。
优选地,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该方法还包括:基于所述系统崩溃信息,获取导致系统崩溃的动态库及相应的与来自所述多个业务组件中的一个或多个第二业务组件的源码信息相对应的符号的偏移量;以及基于所述的用于系统崩溃分流的映射关系的建立方法所建立的第二映射关系、所述动态库及相应的所述符号的偏移量,确定导致系统崩溃的所述第二业务组件。
本发明第四方面提供一种用于系统崩溃分流的装置,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,该装置包括:第一获取模块,用于基于系统崩溃信息,获取导致系统崩溃的应用程序与相应的与来自所述多个业务组件中的一个或多个第一业务组件的源码信息相对应的符号的偏移量;以及第一确定模块,用于基于所述的用于系统崩溃分流的映射关系的建立装置所建立的第一映射关系、所述应用程序及相应的所述符号的偏移量,确定导致系统崩溃的所述第一业务组件。
优选地,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该装置还包括:第二获取模块,用于基于所述系统崩溃信息,获取导致系统崩溃的动态库与相应的与来自所述多个业务组件中的一个或多个第二业务组件的源码信息相对应的符号的偏移量;以及第二确定模块,用于基于所述的用于系统崩溃分流的映射关系的建立装置所建立的第二映射关系、所述动态库及相应的所述符号的偏移量,确定导致系统崩溃的所述第二业务组件。
通过上述技术方案,本发明创造性地通过系统崩溃信息可获取导致系统崩溃的应用程序及相应的与来自多个业务组件中的一个或多个业务组件的源码信息相对应的符号的偏移量;然后在不受编码规范影响的情况下,结合所建立的应用程序、业务组件及符号的偏移量之间的映射关系,可确定导致系统崩溃的业务组件,且准确率高。
本发明第五方面提供一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器执行所述的用于系统崩溃分流的映射关系的建立方法或所述的用于系统崩溃分流的方法。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是本发明一实施例提供的用于系统崩溃分流的映射关系的建立方法的流程图;
图2是本发明一实施例提供的用于系统崩溃分流的映射关系的建立过程的示意图;
图3是本发明一实施例提供的用于系统崩溃分流的映射关系的建立装置的结构图;
图4是本发明一实施例提供的用于系统崩溃分流的方法的流程图;
图5是本发明一实施例提供的用于系统崩溃分流的过程的示意图;以及
图6是本发明一实施例提供的用于系统崩溃分流的装置的结构图。
附图标记说明
10 提取模块 20 生成模块
30 第一映射关系建立模块 40 第一获取模块
50 第一确定模块
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
一个系统至少可包括应用程序(App),该App由来自多个业务组件的源码和静态库经过编译及链接过程生成,故在系统崩溃的情况下,可通过本发明所提供的技术方案对导致系统崩溃的APP对应的源码所属的业务组件进行追踪溯源。另外,APP在运行过程中可能会调用动态库,故除了App之外,所述系统还有可能包括动态库。由此,本发明还提供了对导致系统崩溃的动态库对应的源码所属的业务组件进行追踪溯源的技术方案。
在详细描述本发明的各个实施例之前,对本发明所涉及的几个概念进行简单的介绍。
符号:程序中的源码部分包含函数、属性、类名及变量名等源码信息,在对源码进行编译时,采用一种标识来表示所述源码信息,并使用这种标识来进行链接。其中,这种标识被称为符号。
编译文件:被写入源码信息并作为编译单元参与编译的文件被称为编译文件。
偏移量(offset):程序中的源码经过编译和链接之后会生成一个产物(动态库或者App),而每个函数、属性、类名及变量名等源码信息所对应的符号会存放在这个产物中。一旦生成产物,每个函数、属性、类名及变量名等源码信息所对应的符号存放的位置相对于编译文件本身所存放的位置就会产生一个“偏移量”,这个“偏移量”被称为符号的偏移量。当产物被加载到内存中时,这个偏移量是不会变化的。
业务组件:每个业务方的代码以“业务组件”的形式接入系统,其中,所述业务组件可包括源码及静态库与动态库中的至少一者。
图1是本发明一实施例提供的用于系统崩溃分流的映射关系的建立方法的流程图。在系统至少包括应用程序的情况下,如图1所示,所述建立方法可包括如下步骤:步骤S101,提取多个业务组件的目录,该目录包括业务组件与关于源码信息的编译文件之间的对应关系;步骤S102,对来自所述多个业务组件的源码及静态库进行编译与链接,以生成关于所述应用程序的链接对应关系文件,该链接对应关系文件包括与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;以及步骤S103,基于所述业务组件与所述编译文件之间的对应关系及所述符号的偏移量与所述编译文件之间的对应关系,建立所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系。
对于步骤S101,可使用脚本提取每个业务组件对应的具体目录,也就是说,可使用脚本提取每个业务组件与关于源码信息的编译文件之间的对应关系。
对于步骤S102,如图2所示,对来自业务组件A的源码与静态库、及来自业务组件B的源码进行编译与链接,可生成应用程序(App)及关于该App的链接对应关系文件(AppLinkMapFile)。具体地,所述关于该App的链接对应关系文件可包括与源码信息相对应的符号的偏移量与编译文件之间的对应关系,即所述关于该App的链接对应关系文件可标明每一个符号的偏移量所对应的编译文件,如图2所示。例如,符号的偏移量为偏移量1所对应的编译文件为编译文件1;以及符号的偏移量为偏移量2所对应的编译文件为编译文件2等。
对于步骤S103,基于步骤S101所提取的业务组件与编译文件之间的对应关系及步骤S102所生成的符号的偏移量与编译文件之间的对应关系,可获取App业务组件的偏移表,该App业务组件的偏移表展示了App、业务组件及符号的偏移量之间的第一映射关系。例如,对于APP而言,偏移量为偏移量1与偏移量2的符号所对应的源码信息来自业务组件A;偏移量为偏移量3与偏移量4的符号所对应的源码信息来自业务组件B。
在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该建立方法还可包括:导出所述动态库的源码信息相对应的符号的偏移量;以及建立所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系。
由于动态库已经被编译并链接完成,并不能提取得到与动态库相应的链接对应关系文件,故可采用其他方式获取动态库的源码信息相对应的符号的偏移量。具体地,所述导出所述动态库的源码信息相对应的符号的偏移量可包括:采用快速查看工具Objdump导出所述动态库的源码信息相对应的符号的偏移量,如图2所示。例如,对于动态库B,所导出的偏移量表显示偏移量1与偏移量2。
在系统崩溃的情况下,由于崩溃日志(Crash log)会显示导致崩溃的App或动态库及对应的符号的偏移量,故结合上述所建立的所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系及所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系,可确定导致系统崩溃的具体业务组件。
综上所述,本发明创造性地首先提取多个业务组件与关于源码信息的编译文件之间的对应关系;然后对来自所述多个业务组件的源码与静态库进行编译与链接,从而生成与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;最后基于上述两个对应关系,建立应用程序、业务组件及符号的偏移量之间的映射关系,由此,在不受编码规范影响的情况下,基于所建立的所述映射关系可确定导致系统崩溃的业务组件(即业务方),且准确率高。
图3是本发明一实施例提供的用于系统崩溃分流的映射关系的建立装置的结构图。在所述系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序(App)的情况下,如图3所示,所述建立装置可包括:提取模块10,用于提取多个业务组件的目录,该目录包括业务组件与关于源码信息的编译文件之间的对应关系;生成模块20,用于对来自所述多个业务组件的源码及静态库进行编译与链接,以生成关于所述应用程序的链接对应关系文件,该链接对应关系文件包括与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;以及第一映射关系建立模块30,用于基于所述业务组件与所述编译文件之间的对应关系及所述符号的偏移量与所述编译文件之间的对应关系,建立所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系。
优选地,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该建立装置还包括:导出模块,用于导出所述动态库的源码信息相对应的符号的偏移量;以及第二映射关系建立模块,用于建立所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系。
优选地,所述导出模块用于导出所述动态库的源码信息相对应的符号的偏移量包括:采用快速查看工具Objdump导出所述动态库的源码信息相对应的符号的偏移量。
有关本发明提供的用于系统崩溃分流的映射关系的建立装置的细节及益处可参阅上述针对用于系统崩溃分流的映射关系的建立方法的描述,于此不再赘述。
图4是本发明一实施例提供的用于系统崩溃分流的方法的流程图。如图4所示,在所述系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序(App)的情况下,所述用于系统崩溃分流的方法可包括以下步骤:步骤S401,基于系统崩溃信息,获取导致系统崩溃的应用程序及相应的与来自所述多个业务组件中的一个或多个第一业务组件的源码信息相对应的符号的偏移量;以及步骤S402,基于所述的用于系统崩溃分流的映射关系的建立方法所建立的第一映射关系、所述应用程序及相应的所述符号的偏移量,确定导致系统崩溃的所述第一业务组件。
在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该方法还可包括:基于所述系统崩溃信息,获取导致系统崩溃的动态库及相应的与来自所述多个业务组件中的一个或多个第二业务组件的源码信息相对应的符号的偏移量;以及基于所述的用于系统崩溃分流的映射关系的建立方法所建立的第二映射关系、所述动态库及相应的所述符号的偏移量,确定导致系统崩溃的所述第二业务组件。
其中,所述第二业务组件可以与所述第一业务组件相同,也可以与所述第一业务组件不同。
具体地,如图5所示,以iOS系统为例,当系统发生崩溃后,崩溃日志(Crash log)中的每行内容表明导致系统崩溃的App或动态库及其对应的符号的偏移量,然而第一行内容表示系统信息(可忽略)。故在本发明的分流策略中,不考虑第一行内容。
如图5所示,若崩溃日志显示导致崩溃的App及对应的符号的偏移量1,则从上述所建立的所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系(例如,图5中的App业务组件的偏移表)及所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系(例如,图5中的动态库B业务组件的偏移表)中,先找到App业务组件的偏移表,然后在该偏移表中查找偏移量1所属的业务组件A。对于崩溃日志所显示的导致崩溃的App及对应的符号的偏移量2的部分,可执行类似的操作,于此不再赘述,可从App业务组件的偏移表中查找到偏移量2所属的业务组件B。
如图5所示,若崩溃日志显示导致崩溃的动态库B及对应的符号的偏移量1,则从上述所建立的所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系(例如,图5中的App业务组件的偏移表)及所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系(例如,图5中的动态库B业务组件的偏移表)中,先找到动态库B业务组件的偏移表,然后在该偏移表中查找偏移量1所属的业务组件B。对于崩溃日志所显示的导致崩溃的动态库B及对应的符号的偏移量2的部分,可执行类似的操作,于此不再赘述,可从动态库B业务组件的偏移表中查找到偏移量2所属的业务组件B,由此可在不需要人工定义及维护规则且不依赖崩溃日志的符号的情况下,完成分流任务,分流准确率可达到99%,且也不对业务方的开发人员编码产生影响。
综上所述,本发明创造性地通过系统崩溃信息可获取导致系统崩溃的应用程序及相应的与来自多个业务组件中的一个或多个业务组件的源码信息相对应的符号的偏移量;然后在不受编码规范影响的情况下,结合所建立的应用程序、业务组件及符号的偏移量之间的映射关系,可确定导致系统崩溃的业务组件,且准确率高。
图6是本发明一实施例提供的用于系统崩溃分流的装置的结构图。在所述系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序的情况下,如图6所示,所述用于系统崩溃分流的装置可包括:第一获取模块40,用于基于系统崩溃信息,获取导致系统崩溃的应用程序与相应的与来自所述多个业务组件中的一个或多个第一业务组件的源码信息相对应的符号的偏移量;以及第一确定模块50,用于基于所述的用于系统崩溃分流的映射关系的建立装置所建立的第一映射关系、所述应用程序及相应的所述符号的偏移量,确定导致系统崩溃的所述第一业务组件。
在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该装置还可包括:第二获取模块,用于基于所述系统崩溃信息,获取导致系统崩溃的动态库与相应的与来自所述多个业务组件中的一个或多个第二业务组件的源码信息相对应的符号的偏移量;以及第二确定模块,用于基于所述的用于系统崩溃分流的映射关系的建立装置所建立的第二映射关系、所述动态库及相应的所述符号的偏移量,确定导致系统崩溃的所述第二业务组件。
有关本发明提供的用于系统崩溃分流的装置的细节及益处可参阅上述针对用于系统崩溃分流的方法的描述,于此不再赘述。
相应地,本发明一实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有指令,该指令用于使得机器执行所述的用于系统崩溃分流的映射关系的建立方法或所述的用于系统崩溃分流的方法。
所述机器可读存储介质包括但不限于相变内存(相变随机存取存储器的简称,Phase Change Random Access Memory,PRAM,亦称为RCM/PCRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体(Flash Memory)或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备等各种可以存储程序代码的介质。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

Claims (10)

1.一种用于系统崩溃分流的映射关系的建立方法,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,其特征在于,该建立方法包括:
提取多个业务组件的目录,该目录包括业务组件与关于源码信息的编译文件之间的对应关系;
对来自所述多个业务组件的源码及静态库进行编译与链接,以生成关于所述应用程序的链接对应关系文件,该链接对应关系文件包括与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;以及
基于所述业务组件与所述编译文件之间的对应关系及所述符号的偏移量与所述编译文件之间的对应关系,建立所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系。
2.根据权利要求1所述的用于系统崩溃分流的映射关系的建立方法,其特征在于,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该建立方法还包括:
导出所述动态库的源码信息相对应的符号的偏移量;以及
建立所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系。
3.根据权利要求2所述的用于系统崩溃分流的映射关系的建立方法,其特征在于,所述导出所述动态库的源码信息相对应的符号的偏移量包括:采用快速查看工具Objdump导出所述动态库的源码信息相对应的符号的偏移量。
4.一种用于系统崩溃分流的映射关系的建立装置,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,其特征在于,该建立装置包括:
提取模块,用于提取多个业务组件的目录,该目录包括业务组件与关于源码信息的编译文件之间的对应关系;
生成模块,用于对来自所述多个业务组件的源码及静态库进行编译与链接,以生成关于所述应用程序的链接对应关系文件,该链接对应关系文件包括与所述源码信息相对应的符号的偏移量与所述编译文件之间的对应关系;以及
第一映射关系建立模块,用于基于所述业务组件与所述编译文件之间的对应关系及所述符号的偏移量与所述编译文件之间的对应关系,建立所述应用程序、所述业务组件及所述符号的偏移量之间的第一映射关系。
5.根据权利要求4所述的用于系统崩溃分流的映射关系的建立装置,其特征在于,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该建立装置还包括:
导出模块,用于导出所述动态库的源码信息相对应的符号的偏移量;以及
第二映射关系建立模块,用于建立所述动态库、所述业务组件及所述符号的偏移量之间的第二映射关系。
6.根据权利要求5所述的用于系统崩溃分流的映射关系的建立装置,其特征在于,所述导出模块用于导出所述动态库的源码信息相对应的符号的偏移量包括:采用快速查看工具Objdump导出所述动态库的源码信息相对应的符号的偏移量。
7.一种用于系统崩溃分流的方法,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,其特征在于,该方法包括:
基于系统崩溃信息,获取导致系统崩溃的应用程序及相应的与来自所述多个业务组件中的一个或多个第一业务组件的源码信息相对应的符号的偏移量;以及
基于根据权利要求1-3中的任一项权利要求所述的用于系统崩溃分流的映射关系的建立方法所建立的第一映射关系、所述应用程序及相应的所述符号的偏移量,确定导致系统崩溃的所述第一业务组件。
8.根据权利要求所述7的用于系统崩溃分流的方法,其特征在于,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该方法还包括:
基于所述系统崩溃信息,获取导致系统崩溃的动态库及相应的与来自所述多个业务组件中的一个或多个第二业务组件的源码信息相对应的符号的偏移量;以及
基于根据权利要求2或3所述的用于系统崩溃分流的映射关系的建立方法所建立的第二映射关系、所述动态库及相应的所述符号的偏移量,确定导致系统崩溃的所述第二业务组件。
9.一种用于系统崩溃分流的装置,该系统至少包括由来自多个业务组件的源码和静态库经过编译及链接生成的应用程序,其特征在于,该装置包括:
第一获取模块,用于基于系统崩溃信息,获取导致系统崩溃的应用程序与相应的与来自所述多个业务组件中的一个或多个第一业务组件的源码信息相对应的符号的偏移量;以及
第一确定模块,用于基于根据权利要求4-6中的任一项权利要求所述的用于系统崩溃分流的映射关系的建立装置所建立的第一映射关系、所述应用程序及相应的所述符号的偏移量,确定导致系统崩溃的所述第一业务组件。
10.根据权利要求所述9的用于系统崩溃分流的装置,其特征在于,在所述系统还包括来自所述多个业务组件中的一者或多者的动态库的情况下,该装置还包括:
第二获取模块,用于基于所述系统崩溃信息,获取导致系统崩溃的动态库与相应的与来自所述多个业务组件中的一个或多个第二业务组件的源码信息相对应的符号的偏移量;以及
第二确定模块,用于基于根据权利要求5或6所述的用于系统崩溃分流的映射关系的建立装置所建立的第二映射关系、所述动态库及相应的所述符号的偏移量,确定导致系统崩溃的所述第二业务组件。
CN201910824937.3A 2019-09-02 2019-09-02 映射关系建立方法、装置及系统崩溃分流的方法与装置 Active CN110704302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910824937.3A CN110704302B (zh) 2019-09-02 2019-09-02 映射关系建立方法、装置及系统崩溃分流的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910824937.3A CN110704302B (zh) 2019-09-02 2019-09-02 映射关系建立方法、装置及系统崩溃分流的方法与装置

Publications (2)

Publication Number Publication Date
CN110704302A true CN110704302A (zh) 2020-01-17
CN110704302B CN110704302B (zh) 2020-07-10

Family

ID=69194287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910824937.3A Active CN110704302B (zh) 2019-09-02 2019-09-02 映射关系建立方法、装置及系统崩溃分流的方法与装置

Country Status (1)

Country Link
CN (1) CN110704302B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840400A (zh) * 2022-04-14 2022-08-02 北京字节跳动网络技术有限公司 异常组件的识别方法、装置、设备、存储介质及程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126301A1 (en) * 2006-08-02 2008-05-29 International Business Machines Corporation Locating and altering sensitive information in core dumps
CN103164322A (zh) * 2013-04-15 2013-06-19 腾讯科技(深圳)有限公司 一种程序崩溃的签名方法和装置
CN104424090A (zh) * 2013-08-22 2015-03-18 腾讯科技(深圳)有限公司 一种标识崩溃的方法、装置和系统
CN105786680A (zh) * 2016-02-17 2016-07-20 北京飞杰信息技术有限公司 内核崩溃后内存预分析方法及其系统
CN108334515A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 一种处理崩溃文件中堆栈地址的方法、装置及系统
CN108595218A (zh) * 2018-04-17 2018-09-28 网宿科技股份有限公司 一种加载系统动态库的方法和装置
CN109271206A (zh) * 2018-08-24 2019-01-25 晶晨半导体(上海)股份有限公司 一种异常现场的内存压缩和保存方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126301A1 (en) * 2006-08-02 2008-05-29 International Business Machines Corporation Locating and altering sensitive information in core dumps
CN103164322A (zh) * 2013-04-15 2013-06-19 腾讯科技(深圳)有限公司 一种程序崩溃的签名方法和装置
CN104424090A (zh) * 2013-08-22 2015-03-18 腾讯科技(深圳)有限公司 一种标识崩溃的方法、装置和系统
CN105786680A (zh) * 2016-02-17 2016-07-20 北京飞杰信息技术有限公司 内核崩溃后内存预分析方法及其系统
CN108334515A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 一种处理崩溃文件中堆栈地址的方法、装置及系统
CN108595218A (zh) * 2018-04-17 2018-09-28 网宿科技股份有限公司 一种加载系统动态库的方法和装置
CN109271206A (zh) * 2018-08-24 2019-01-25 晶晨半导体(上海)股份有限公司 一种异常现场的内存压缩和保存方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840400A (zh) * 2022-04-14 2022-08-02 北京字节跳动网络技术有限公司 异常组件的识别方法、装置、设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN110704302B (zh) 2020-07-10

Similar Documents

Publication Publication Date Title
CN107229559B (zh) 针对业务系统的测试完整度的检测方法和装置
US20120185454A1 (en) Method and device for accessing file resources
CN108734304B (zh) 一种数据模型的训练方法、装置、及计算机设备
CN105204969A (zh) 异常日志处理方法以及异常日志处理装置
CN105446865A (zh) 多种环境下的测试方法及装置
CN109710286B (zh) 系统升级方法、装置、设备和存储介质
CN110704302B (zh) 映射关系建立方法、装置及系统崩溃分流的方法与装置
CN110362547A (zh) 日志文件的编码、解析、存储方法和装置
CN112181830B (zh) 内存泄露的检测方法、装置、终端及介质
CN113641592B (zh) 测试序列的生成方法及装置
CN110059088B (zh) 一种块链式账本中的数据属性标识方法、装置及设备
CN106990974B (zh) 一种app应用更新方法、装置及电子设备
CN110968548A (zh) 一种数据修正方法、装置、存储介质及处理器
CN104765775A (zh) 一种日志保存方法及装置
CN105988785A (zh) 一种rpc服务开发方法及装置
CN111427736B (zh) 日志监控方法、装置、设备及计算机可读存储介质
CN105187508A (zh) 用户关系处理方法及系统
CN104536897A (zh) 基于关键字的自动测试方法及系统
CN107861725B (zh) 一种iOS数据反向自动解析策略
CN110554867B (zh) 一种应用程序的处理方法和装置
CN112230975A (zh) 一种固件差分的升级方法、装置及设备
CN113568620B (zh) 一种代码文件处理方法、装置、设备及介质
CN112749159A (zh) 表单生成方法、装置、电子设备及存储介质
CN112667509B (zh) Sdk的接入测试方法及装置
CN116028156B (zh) 一种检验尺寸和工序简图尺寸关联显示方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200227

Address after: 100085 Floor 102-1, Building No. 35, West Second Banner Road, Haidian District, Beijing

Applicant after: Seashell Housing (Beijing) Technology Co., Ltd.

Address before: 300280 unit 05, room 112, floor 1, building C, comprehensive service area, Nangang Industrial Zone, Binhai New Area, Tianjin

Applicant before: Shell Technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40016789

Country of ref document: HK