CN111382077B - 应用程序崩溃原因定位方法、装置、电子设备及存储介质 - Google Patents
应用程序崩溃原因定位方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111382077B CN111382077B CN202010176831.XA CN202010176831A CN111382077B CN 111382077 B CN111382077 B CN 111382077B CN 202010176831 A CN202010176831 A CN 202010176831A CN 111382077 B CN111382077 B CN 111382077B
- Authority
- CN
- China
- Prior art keywords
- preset
- application program
- program
- memory
- crash
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供了一种应用程序崩溃原因定位方法、装置、电子设备及存储介质,属于iOS移动应用开发技术领域。所述方法包括:在应用程序的测试运行过程中,执行预设检测操作;如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因。采用本申请提供的技术方案,可以实现在应用程序的开发测试阶段定位应用程序崩溃原因。
Description
技术领域
本申请涉及iOS移动应用开发技术领域,特别是涉及一种应用程序崩溃原因定位方法、装置、电子设备及存储介质。
背景技术
APP(Application,应用程序)崩溃时会出现闪退现象,导致用户体验下降,因此,为提高APP的运行稳定性进而提高用户体验,有必要定位APP崩溃原因。
相关技术中,由于导致APP崩溃的问题在APP的开发测试阶段难以暴露,因此,通常在APP上线发布后,由安装有APP的用户终端在APP崩溃时生成崩溃日志,向APP的后台服务器发送崩溃日志。开发人员可以根据各用户终端上报的崩溃日志定位APP崩溃原因,再在下一版本的APP中对导致APP崩溃的问题进行修复处理。
然而,由于只能在APP上线发布后才能定位APP崩溃原因,导致已上线APP的用户体验差。
发明内容
本申请实施例的目的在于提供一种应用程序崩溃原因定位方法、装置、电子设备及存储介质,以实现在应用程序的开发测试阶段定位应用程序崩溃原因。具体技术方案如下:
第一方面,本申请提供了一种应用程序崩溃原因定位方法,所述方法包括:
在应用程序的测试运行过程中,执行预设检测操作;
如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因。
可选的,所述执行预设检测操作,包括:
在新创建的第一程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述预设操作结果为从内存中读取到所述预设测试值,所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果调用所述第一程序对象时从内存中读取到所述预设测试值,则确定应用程序崩溃原因为未对所述第一程序对象的内存进行内存初始化。
可选的,所述执行预设检测操作,包括:
在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述预设操作结果为从内存中读取到所述预设测试值,所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果调用第二程序对象时从内存中读取到所述预设测试值,则确定应用程序崩溃原因为所述第二程序对象在结束调用后被再次调用。
可选的,所述执行预设检测操作,包括:
通过动态方法交换,将所述应用程序中的预设程序对象交换为数据接收程序对象;
通过所述数据接收程序对象,接收所述应用程序调用所述预设程序对象所需的数据参数;
所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果所述数据参数的实际参数类型与该数据参数的预设参数类型不相符,则确定应用程序崩溃原因为参数类型设置错误。
可选的,所述方法还包括:
获取测试用例,所述测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种;
基于所述测试用例对所述应用程序进行测试运行。
可选的,所述方法还包括:
获取导致应用程序崩溃的代码;
对所述代码的语法规则进行分析,得到崩溃隐患语法规则;
在所述应用程序的代码中确定符合所述崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码;
输出所述目标代码,以便进行人工检验。
第二方面,本申请还提供了一种应用程序崩溃原因定位装置,所述装置包括:
检测模块,用于在应用程序的测试运行过程中,执行预设检测操作;
第一确定模块,用于当所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据所述预设检测操作确定应用程序崩溃原因。
可选的,所述检测模块包括:
第一填充子模块,用于在新创建的第一程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述第一确定模块,具体用于在所述预设操作结果为从内存中读取到所述预设测试值的情况下,当调用所述第一程序对象时从内存中读取到所述预设测试值时,确定应用程序崩溃原因为未对所述第一程序对象的内存进行内存初始化。
可选的,所述检测模块包括:
第二填充子模块,用于在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述第一确定模块,具体用于在所述预设操作结果为从内存中读取到所述预设测试值的情况下,当调用第二程序对象时从内存中读取到所述预设测试值时,确定应用程序崩溃原因为所述第二程序对象在结束调用后被再次调用。
可选的,所述检测模块包括:
交换子模块,用于通过动态装置交换,将所述应用程序中的预设程序对象交换为数据接收程序对象;
接收子模块,用于通过所述数据接收程序对象,接收所述应用程序调用所述预设程序对象所需的数据参数;
所述第一确定模块,具体用于当所述数据参数的实际参数类型与该数据参数的预设参数类型不相符时,确定应用程序崩溃原因为参数类型设置错误。
可选的,所述装置还包括:
第一获取模块,用于获取测试用例,所述测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种;
测试模块,用于基于所述测试用例对所述应用程序进行测试运行。
可选的,所述装置还包括:
第二获取模块,用于获取导致应用程序崩溃的代码;
分析模块,用于对所述代码的语法规则进行分析,得到崩溃隐患语法规则;
第二确定模块,用于在所述应用程序的代码中确定符合所述崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码;
输出模块,用于输出所述目标代码,以便进行人工检验。
第三方面,本申请还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一第一方面所述的方法步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现任一第一方面所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行任一第一方面所述的方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,可以在应用程序的测试运行过程中,执行预设检测操作;如果预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据预设检测操作确定应用程序崩溃原因。由于执行预设检测操作,并在预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据预设检测操作确定应用程序崩溃原因,因此,可以实现在应用程序的开发测试阶段定位应用程序崩溃原因。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的第一种应用程序崩溃原因定位方法的流程图;
图2为本申请实施例提供的第二种应用程序崩溃原因定位方法的流程图;
图3为本申请实施例提供的第三种应用程序崩溃原因定位方法的流程图;
图4为本申请实施例提供的第四种应用程序崩溃原因定位方法的流程图;
图5为本申请实施例提供的第五种应用程序崩溃原因定位方法的流程图;
图6为本申请实施例提供的第六种应用程序崩溃原因定位方法的流程图;
图7为本申请实施例提供的一种应用程序崩溃原因定位装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例提供了一种应用程序崩溃原因定位方法,该方法可以应用于电子设备,电子设备可以是手机、平板电脑和笔记本电脑。
采用本申请实施例提供的应用程序崩溃原因定位方法,可以在应用程序的开发测试阶段提前暴露出崩溃隐患,定位应用程序崩溃原因,并进行修复处理。由此,可以避免在应用程序上线发布后才能定位应用程序崩溃原因的问题,从而能够提高用户体验。
如图1所示,一种应用程序崩溃原因定位方法的具体处理过程,可以包括:
步骤101、在应用程序的测试运行过程中,执行预设检测操作。
在实施中,电子设备可以在应用程序的测试运行过程中,执行预设检测操作。预设检测操作可以是在程序对象的内存中填充预设测试值,预设检测操作也可以是基于动态方法交换,将预设程序对象交换为数据接收程序对象。
步骤102、如果预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据预设检测操作确定应用程序崩溃原因。
在实施中,在执行预设检测操作后,电子设备可以确定预设检测操作的操作结果,并判断预设检测操作的操作结果是否为导致应用程序崩溃的预设操作结果。
例如,在预设检测操作为在程序对象的内存中填充预设测试值的情况下,预设检测操作的操作结果可以是从内存中读取到预设测试值,或,读取到程序对象的参数值。预设操作结果可以是从内存中读取到预设测试值。
如果预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则电子设备可以根据预设检测操作确定应用程序崩溃原因,具体处理过程后续会进行详细说明。如果预设检测操作的操作结果不是导致应用程序崩溃的预设操作结果,则电子设备可以不作后续处理。
本申请实施例中,电子设备可以在应用程序的测试运行过程中,执行预设检测操作;如果预设检测操作的操作结果为导致应用程序崩溃规则的预设操作结果,则根据预设检测操作确定应用程序崩溃原因。由于执行预设检测操作,并在预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据预设检测操作确定应用程序崩溃原因,因此,可以实现在应用程序的开发测试阶段定位应用程序崩溃原因。
可选的,电子设备可以基于动态分析方式,定位应用程序崩溃原因。动态分析方式可以是多种多样的,例如,hook(挂钩)关键系统方法、动态方法交换方式、预设的检测模块和多种测试用例。
在预设检测操作为在新创建的第一程序对象的内存中填充预设测试值,预设操作结果为从内存中读取到预设测试值的情况下,本申请实施例提供了一种电子设备基于hook关键系统方法,定位应用程序崩溃原因的实现方式,如图2所示,包括:
步骤201、在应用程序的测试运行过程中,在新创建的第一程序对象的内存中填充预设测试值。
其中,填充有预设测试值的内存在被读取时会导致应用程序崩溃,开发人员可以根据需要设置预设测试值,预设测试值可以为0xaa、0x55。
在实施中,在应用程序的测试运行过程中,电子设备可以执行预设检测操作,即,电子设备可以在创建某一程序对象的过程中,先在为该程序对象分配的内存中填充预设测试值,再执行程序对象创建处理。为了便于区分,将该程序对象称为第一程序对象。
然后,电子设备可以调用第一程序对象,并确定调用第一程序对象后应用程序的运行状态。
如果调用第一程序对象后应用程序运行正常,则表明在针对第一程序对象执行程序对象创建处理的过程中,电子设备先对为第一程序对象分配的内存进行内存初始化,再在该内存中写入第一程序对象的参数值。在第一程序对象的调用过程中,电子设备可以正常读取到第一程序对象的参数值。即,预设检测操作的操作结果为从内存中读取到第一程序对象的参数值,预设检测操作的操作结果与预设操作结果不一致。由此,电子设备可以不作后续处理。
步骤202、如果调用第一程序对象时从内存中读取到预设测试值,则确定应用程序崩溃原因为未对第一程序对象的内存进行内存初始化。
在实施中,如果调用第一程序对象后出现应用程序崩溃,则表明电子设备未对第一程序对象的内存进行内存初始化,直接在该内存中写入第一程序对象的参数值。在第一程序对象的调用过程中,电子设备无法正常读取到第一程序对象的参数值,即,预设检测操作的操作结果为从内存中读取到预设测试值,预设检测操作的操作结果与预设操作结果一致。
由此,电子设备可以根据预设检测操作,确定应用程序崩溃原因为:未对第一程序对象的内存进行内存初始化。
本申请实施例中,在应用程序的测试运行过程中,电子设备可以在新创建的第一程序对象的内存中填充预设测试值。如果调用第一程序对象时从内存中读取到预设测试值,则电子设备可以确定应用程序崩溃原因为未对第一程序对象的内存进行内存初始化。通过在内存中填充预设测试值,电子设备可以在应用程序的测试运行过程中,定位出由于对新创建的第一程序对象未进行内存初始化而导致应用程序崩溃的第一程序对象。
本申请实施例提供的应用程序崩溃原因定位方法,从内存分配角度分析,能够及时发现为某一程序对象申请内存后,未进行内存初始化就调用该程序对象而导致的应用程序崩溃问题。
可选的,在预设检测操作为在结束调用的程序对象的内存中填充预设测试值,预设操作结果为从内存中读取到预设测试值的情况下,本申请实施例还提供了另一种电子设备基于hook关键系统方法,定位应用程序崩溃原因的实现方式,如图3所示,包括:
步骤301、在应用程序的测试运行过程中,在结束调用的程序对象的内存中填充预设测试值。
其中,填充有预设测试值的内存在被读取时会导致应用程序崩溃,开发人员可以根据需要设置预设测试值,预设测试值可以为0xaa、0x55。
在实施中,在应用程序的测试运行过程中,电子设备可以在结束调用某一程序对象后,在为该程序对象分配的内存中填充预设测试值。
在应用程序的测试运行过程中,电子设备确定调用某一程序对象后应用程序的运行状态。为了便于区分,将该程序对象称为第二程序对象。
如果调用第二程序对象后应用程序运行正常,则表明电子设备能够正常读取到第二程序对象的参数值。即,预设检测操作的操作结果为从内存中读取到第二程序对象的参数值,预设检测操作的操作结果与预设操作结果不一致。由此,电子设备可以不作后续处理。
步骤302、如果调用第二程序对象时从内存中读取到预设测试值,则确定应用程序崩溃原因为第二程序对象在结束调用后被再次调用。
在实施中,如果第二程序对象被调用后出现应用程序崩溃,则表明第二程序对象为在结束调用后被再次调用的程序对象。
在再次调用的过程中,电子设备读取到的不是第二程序对象的参数值,而是被读取时会导致应用程序崩溃的预设测试值,即,预设检测操作的操作结果为从内存中读取到预设测试值,预设检测操作的操作结果与预设操作结果一致。
由此,电子设备可以根据预设检测操作,确定应用程序崩溃原因为:第二程序对象在结束调用后被再次调用。
本申请实施例中,在应用程序的测试运行过程中,电子设备可以在结束调用的程序对象的内存中填充预设测试值。如果调用第二程序对象时从内存中读取到预设测试值,电子设备可以确定应用程序崩溃原因为:第二程序对象在结束调用后被再次调用。通过在结束调用的程序对象的内存中填充预设测试值,电子设备可以在应用程序的测试运行过程中,定位出由于结束调用后被再次调用而导致应用程序崩溃的第二程序对象。
本申请实施例提供的应用程序崩溃原因定位方法,从内存回收角度分析,能够及时发现内存指针释放后,依然继续使用而导致应用程序崩溃的野指针问题。
可选的,在预设检测操作为通过动态方法交换,将应用程序中的预设程序对象交换为数据接收程序对象,预设操作结果为参数类型不相符的情况下,本申请实施例提供了一种电子设备基于动态方法交换,定位应用程序崩溃原因的实现方式,如图4所示,包括:
步骤401、在应用程序的测试运行过程中,通过动态方法交换,将应用程序中的预设程序对象交换为数据接收程序对象。
其中,预设程序对象可以是应用程序中预先设置的应用程序接口,例如,预设程序对象可以是用于调用动画函数的API(Application Program Interface,应用程序接口)、用于调用字符串的API、用于调用容器的API。
在实施中,在应用程序的测试运行过程中,电子设备可以在调用某一预设程序对象之前,通过动态方法交换,将预设程序对象交换为数据接收程序对象。然后,电子设备可以调用数据接收程序对象。
步骤402、通过数据接收程序对象,接收应用程序调用预设程序对象所需的数据参数。
其中,数据参数可以是程序对象的配置参数,例如,数据参数可以是文件类型、保存路径。
在实施中,由于应用程序在调用某一预设程序对象时,会向该预设程序对象发送调用该预设程序对象所需的数据参数,因此,在将预设程序对象交换为数据接收程序对象后,电子设备可以通过数据接收程序对象,接收应用程序调用预设程序对象所需的数据参数。
步骤403、判断该数据参数的实际参数类型与该数据参数的预设参数类型是否相符。
其中,预设参数类型可以是int(整型变量)、string(字符串)。
在实施中,电子设备可以确定接收到的数据参数的实际参数类型,然后,电子设备可以根据预先存储的数据参数与预设参数类型的对应关系,确定该数据参数的预设参数类型。之后,电子设备可以判断该数据参数的实际参数类型与该数据参数的预设参数类型是否相符。
如果该数据参数的实际参数类型与该数据参数的预设参数类型不相符,则表明预设检测操作的操作结果为参数类型不相符,预设检测操作的操作结果与预设操作结果一致。由此,电子设备可以执行步骤404。如果该数据参数的实际参数类型与该数据参数的预设参数类型相符,则表明预设检测操作的操作结果与预设操作结果不一致,电子设备可以执行步骤405。
步骤404、确定应用程序崩溃原因为参数类型设置错误。
在实施中,电子设备可以根据预设检测操作,确定应用程序崩溃原因为:参数类型设置错误。
步骤405、不作后续处理。
本申请实施例中,电子设备可以在应用程序的测试运行过程中,通过动态方法交换,将应用程序中的预设程序对象交换为数据接收程序对象。然后,电子设备可以通过数据接收程序对象,接收应用程序调用预设程序对象所需的数据参数,并判断该数据参数的实际参数类型与该数据参数的预设参数类型是否相符。如果该数据参数的实际参数类型与该数据参数的预设参数类型不相符,则电子设备可以确定应用程序崩溃原因为:参数类型设置错误;如果该数据参数的实际参数类型与该数据参数的预设参数类型相符,则电子设备可以不作后续处理。
通过动态方法交换,获取调用预设程序对象所需的数据参数的实际参数类型,并对实际参数类型和预设参数类型进行比较,电子设备可以在应用程序的测试运行过程中,定位出由于参数类型设置错误导致应用程序崩溃的预设程序对象。
采用本申请实施例提供的应用程序崩溃原因定位方法,从系统参数异常角度分析,能够及时发现由于调用预设程序对象所需数据参数的参数类型设置错误,而导致应用程序崩溃的问题。
本申请实施例还提供了一种电子设备基于测试用例,定位应用程序崩溃原因的实现方式,如图5所示,包括:
步骤501、获取测试用例。
其中,测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种。深度测试用例可以是重复点击,以从应用程序的上一级页面进入下一级页面;功能测试用例可以是登录应用程序、用户注册;随机测试用例可以是monkey(猴子)随机测试生成的测试用例。
电子设备可以接收开发人员输入的测试用例,也可以通过测试用例生成模块,生成测试用例。
步骤502、基于测试用例对应用程序进行测试运行。
电子设备基于测试用例对应用程序进行测试运行的具体处理过程,可以参考相关技术中,基于测试用例对应用程序进行测试运行的处理过程,此处不再赘述。
本申请实施例中,电子设备可以获取测试用例,然后,电子设备可以基于测试用例对应用程序进行测试运行。由此,可以对应用程序进行自动化测试,如果在测试运行过程中出现应用程序崩溃现象,开发人员能够及时处理。
相关技术中,测试用例由人工操作生成,不仅费时费力,而且可能出现无法测试到应用程序的全部功能、同一功能被重复测试的现象。而本申请实施例中,通过自动生成测试用例,能够保证测试路径不重复,并且能够生成深度测试用例,保证应用程序所测试功能的功能覆盖度,从而能够提高问题暴露几率。
可选的,应用程序中可以预先设置有检测模块,检测模块例如Address Sanitizer(内存错误检测工具)、Thread Sanitizer(数据竞争检测工具)和Undefined BehaviorSanitizer(未定义行为检测工具)。在应用程序的测试运行过程中,电子设备可以通过检测模块定位应用程序崩溃原因,具体处理过程可以参照相关技术中,预设应用程序中检测模块定位应用程序崩溃原因的处理过程,此处不再赘述。
相关技术中,检测模块为预设应用程序中的插件,预设应用程序为用于开发应用程序的应用程序,例如,预设应用程序可以是XCODE。
本申请实施例中,通过检测模块可以对Use of Out-of-Scope Stack Memory(使用范围外堆栈内存)及Overflow and Underflow of Buffers(缓冲区溢出和下溢)等问题进行检测。
可选的,电子设备还可以基于静态分析方式,定位应用程序崩溃原因,如图6所示,具体处理过程包括:
步骤601、获取导致应用程序崩溃的代码。
在实施中,电子设备可以通过多种方式获取导致应用程序崩溃的代码。在一种可行的实现方式中,崩溃日志中可以记录有导致应用程序崩溃的代码,电子设备基于旧版本应用程序的崩溃日志,确定导致应用程序崩溃的代码。在另一种可行的实现方式中,电子设备可以接收开发人员输入的导致应用程序崩溃的代码。
步骤602、对代码的语法规则进行分析,得到崩溃隐患语法规则。
在实施中,电子设备中可以预先设置有规则生成器,电子设备可以通过规则生成器对导致应用程序崩溃的代码进行扫描分析,得到崩溃隐患语法规则。崩溃隐患语法规则可以是if、for、do、while等语句的执行语句部分未加括号、在主函数调用其他函数的过程中使用主函数中定义的变量。
步骤603、在应用程序的代码中确定符合崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码。
在实施中,电子设备可以对应用程序的代码是否符合崩溃隐患语法规则进行检验,如果未检测到符合崩溃隐患语法规则的代码,则电子设备可以不作后续处理。如果检测到符合崩溃隐患语法规则的代码,则电子设备可以将检测出的代码,作为具有应用程序崩溃隐患的目标代码。
步骤604、输出目标代码,以便进行人工检验。
本申请实施例中,电子设备可以获取导致应用程序崩溃的代码,对代码的语法规则进行分析,得到崩溃隐患语法规则。然后,电子设备可以在应用程序的代码中确定符合崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码。之后,电子设备可以输出目标代码,以便进行人工检验。
由于确定崩溃隐患语法规则,并将应用程序的代码中符合崩溃隐患语法规则的代码,作为具有应用程序崩溃隐患的目标代码,因此,能够提高应用程序崩溃原因的定位准确率,同时,还能定位出多种应用程序崩溃原因。
电子设备可以结合上述动态分析方式和静态分析方式中的一种或多种,定位应用程序崩溃原因,本申请实施例不作具体限定。
基于相同的技术构思,本申请还提供了一种应用程序崩溃原因定位装置,如图7所示,所述装置包括:
检测模块710,用于在应用程序的测试运行过程中,执行预设检测操作;
第一确定模块720,用于当所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据所述预设检测操作确定应用程序崩溃原因。
可选的,所述检测模块包括:
第一填充子模块,用于在新创建的第一程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述第一确定模块,具体用于在所述预设操作结果为从内存中读取到所述预设测试值的情况下,当调用所述第一程序对象时从内存中读取到所述预设测试值时,确定应用程序崩溃原因为未对所述第一程序对象的内存进行内存初始化。
可选的,所述检测模块包括:
第二填充子模块,用于在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述第一确定模块,具体用于在所述预设操作结果为从内存中读取到所述预设测试值的情况下,当调用第二程序对象时从内存中读取到所述预设测试值时,确定应用程序崩溃原因为所述第二程序对象在结束调用后被再次调用。
可选的,所述检测模块包括:
交换子模块,用于通过动态装置交换,将所述应用程序中的预设程序对象交换为数据接收程序对象;
接收子模块,用于通过所述数据接收程序对象,接收所述应用程序调用所述预设程序对象所需的数据参数;
所述第一确定模块,具体用于当所述数据参数的实际参数类型与该数据参数的预设参数类型不相符时,确定应用程序崩溃原因为参数类型设置错误。
可选的,所述装置还包括:
第一获取模块,用于获取测试用例,所述测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种;
测试模块,用于基于所述测试用例对所述应用程序进行测试运行。
可选的,所述装置还包括:
第二获取模块,用于获取导致应用程序崩溃的代码;
分析模块,用于对所述代码的语法规则进行分析,得到崩溃隐患语法规则;
第二确定模块,用于在所述应用程序的代码中确定符合所述崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码;
输出模块,用于输出所述目标代码,以便进行人工检验。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该装置,可以在应用程序的测试运行过程中,执行预设检测操作;如果预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据预设检测操作确定应用程序崩溃原因。由于执行预设检测操作,并在预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据预设检测操作确定应用程序崩溃原因,因此,可以实现在应用程序的开发测试阶段定位应用程序崩溃原因。
本申请实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现以下步骤:
在应用程序的测试运行过程中,执行预设检测操作;
如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因。
可选的,所述执行预设检测操作,包括:
在新创建的第一程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述预设操作结果为从内存中读取到所述预设测试值,所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果调用所述第一程序对象时从内存中读取到所述预设测试值,则确定应用程序崩溃原因为未对所述第一程序对象的内存进行内存初始化。
可选的,所述执行预设检测操作,包括:
在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述预设操作结果为从内存中读取到所述预设测试值,所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果调用第二程序对象时从内存中读取到所述预设测试值,则确定应用程序崩溃原因为所述第二程序对象在结束调用后被再次调用。
可选的,所述执行预设检测操作,包括:
通过动态方法交换,将所述应用程序中的预设程序对象交换为数据接收程序对象;
通过所述数据接收程序对象,接收所述应用程序调用所述预设程序对象所需的数据参数;
所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果所述数据参数的实际参数类型与该数据参数的预设参数类型不相符,则确定应用程序崩溃原因为参数类型设置错误。
可选的,所述方法还包括:
获取测试用例,所述测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种;
基于所述测试用例对所述应用程序进行测试运行。
可选的,所述方法还包括:
获取导致应用程序崩溃的代码;
对所述代码的语法规则进行分析,得到崩溃隐患语法规则;
在所述应用程序的代码中确定符合所述崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码;
输出所述目标代码,以便进行人工检验。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该电子设备,可以在应用程序的测试运行过程中,执行预设检测操作;如果预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据预设检测操作确定应用程序崩溃原因。由于执行预设检测操作,并在预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据预设检测操作确定应用程序崩溃原因,因此,可以实现在应用程序的开发测试阶段定位应用程序崩溃原因。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的应用程序崩溃原因定位方法步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的应用程序崩溃原因定位方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (14)
1.一种应用程序崩溃原因定位方法,其特征在于,所述方法包括:
在应用程序的测试运行过程中,执行预设检测操作,其中,所述预设检测操作包括在新创建的第一程序对象的内存中填充预设测试值或在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,其中,所述操作结果为调用所述第一程序对象时从内存中读取到所述预设测试值或调用第二程序对象时从内存中读取到所述预设测试值。
2.根据权利要求1所述的方法,其特征在于,所述执行预设检测操作,包括:
在新创建的第一程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述预设操作结果为从内存中读取到所述预设测试值,所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果调用所述第一程序对象时从内存中读取到所述预设测试值,则确定应用程序崩溃原因为未对所述第一程序对象的内存进行内存初始化。
3.根据权利要求1所述的方法,其特征在于,所述执行预设检测操作,包括:
在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述预设操作结果为从内存中读取到所述预设测试值,所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果调用第二程序对象时从内存中读取到所述预设测试值,则确定应用程序崩溃原因为所述第二程序对象在结束调用后被再次调用。
4.根据权利要求1所述的方法,其特征在于,所述执行预设检测操作,包括:
通过动态方法交换,将所述应用程序中的预设程序对象交换为数据接收程序对象;
通过所述数据接收程序对象,接收所述应用程序调用所述预设程序对象所需的数据参数;
所述如果所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果,则根据所述预设检测操作确定应用程序崩溃原因,包括:
如果所述数据参数的实际参数类型与该数据参数的预设参数类型不相符,则确定应用程序崩溃原因为参数类型设置错误。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
获取测试用例,所述测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种;
基于所述测试用例对所述应用程序进行测试运行。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取导致应用程序崩溃的代码;
对所述代码的语法规则进行分析,得到崩溃隐患语法规则;
在所述应用程序的代码中确定符合所述崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码;
输出所述目标代码,以便进行人工检验。
7.一种应用程序崩溃原因定位装置,其特征在于,所述装置包括:
检测模块,用于在应用程序的测试运行过程中,执行预设检测操作,其中,所述预设检测操作包括在新创建的第一程序对象的内存中填充预设测试值或在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
第一确定模块,用于当所述预设检测操作的操作结果为导致应用程序崩溃的预设操作结果时,根据所述预设检测操作确定应用程序崩溃原因,其中,所述操作结果为调用所述第一程序对象时从内存中读取到所述预设测试值或调用第二程序对象时从内存中读取到所述预设测试值。
8.根据权利要求7所述的装置,其特征在于,所述检测模块包括:
第一填充子模块,用于在新创建的第一程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述第一确定模块,具体用于在所述预设操作结果为从内存中读取到所述预设测试值的情况下,当调用所述第一程序对象时从内存中读取到所述预设测试值时,确定应用程序崩溃原因为未对所述第一程序对象的内存进行内存初始化。
9.根据权利要求7所述的装置,其特征在于,所述检测模块包括:
第二填充子模块,用于在结束调用的程序对象的内存中填充预设测试值,填充有所述预设测试值的内存在被读取时会导致所述应用程序崩溃;
所述第一确定模块,具体用于在所述预设操作结果为从内存中读取到所述预设测试值的情况下,当调用第二程序对象时从内存中读取到所述预设测试值时,确定应用程序崩溃原因为所述第二程序对象在结束调用后被再次调用。
10.根据权利要求7所述的装置,其特征在于,所述检测模块包括:
交换子模块,用于通过动态装置交换,将所述应用程序中的预设程序对象交换为数据接收程序对象;
接收子模块,用于通过所述数据接收程序对象,接收所述应用程序调用所述预设程序对象所需的数据参数;
所述第一确定模块,具体用于当所述数据参数的实际参数类型与该数据参数的预设参数类型不相符时,确定应用程序崩溃原因为参数类型设置错误。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于获取测试用例,所述测试用例包含深度测试用例、随机测试用例、功能测试用例中的至少一种;
测试模块,用于基于所述测试用例对所述应用程序进行测试运行。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取导致应用程序崩溃的代码;
分析模块,用于对所述代码的语法规则进行分析,得到崩溃隐患语法规则;
第二确定模块,用于在所述应用程序的代码中确定符合所述崩溃隐患语法规则的代码,得到具有应用程序崩溃隐患的目标代码;
输出模块,用于输出所述目标代码,以便进行人工检验。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176831.XA CN111382077B (zh) | 2020-03-13 | 2020-03-13 | 应用程序崩溃原因定位方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010176831.XA CN111382077B (zh) | 2020-03-13 | 2020-03-13 | 应用程序崩溃原因定位方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382077A CN111382077A (zh) | 2020-07-07 |
CN111382077B true CN111382077B (zh) | 2023-09-01 |
Family
ID=71217705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010176831.XA Active CN111382077B (zh) | 2020-03-13 | 2020-03-13 | 应用程序崩溃原因定位方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382077B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527681B (zh) * | 2020-12-24 | 2024-03-12 | 中国银联股份有限公司 | 一种程序的漏洞检测方法及装置 |
CN113485929A (zh) * | 2021-07-12 | 2021-10-08 | 北大方正集团有限公司 | 数据处理方法、装置、设备、存储介质及程序产品 |
CN115098292B (zh) * | 2022-07-05 | 2023-12-08 | 中国电信股份有限公司 | 应用程序崩溃根原因识别方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572332A (zh) * | 2015-02-09 | 2015-04-29 | 华为技术有限公司 | 处理系统崩溃的方法和装置 |
WO2017219589A1 (zh) * | 2016-06-19 | 2017-12-28 | 乐视控股(北京)有限公司 | 程序崩溃消息的处理方法及系统 |
CN108073495A (zh) * | 2016-11-18 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 应用程序崩溃原因的定位方法及装置 |
CN109144852A (zh) * | 2018-07-25 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 静态代码的扫描方法、装置、计算机设备及存储介质 |
CN110442468A (zh) * | 2019-07-18 | 2019-11-12 | 北京奇艺世纪科技有限公司 | 崩溃诊断信息收集方法、系统及电子设备 |
WO2019231194A1 (ko) * | 2018-05-28 | 2019-12-05 | 삼성전자 주식회사 | 메모리 오류를 검출하는 방법 및 시스템 |
-
2020
- 2020-03-13 CN CN202010176831.XA patent/CN111382077B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572332A (zh) * | 2015-02-09 | 2015-04-29 | 华为技术有限公司 | 处理系统崩溃的方法和装置 |
WO2017219589A1 (zh) * | 2016-06-19 | 2017-12-28 | 乐视控股(北京)有限公司 | 程序崩溃消息的处理方法及系统 |
CN108073495A (zh) * | 2016-11-18 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 应用程序崩溃原因的定位方法及装置 |
WO2019231194A1 (ko) * | 2018-05-28 | 2019-12-05 | 삼성전자 주식회사 | 메모리 오류를 검출하는 방법 및 시스템 |
CN109144852A (zh) * | 2018-07-25 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 静态代码的扫描方法、装置、计算机设备及存储介质 |
CN110442468A (zh) * | 2019-07-18 | 2019-11-12 | 北京奇艺世纪科技有限公司 | 崩溃诊断信息收集方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111382077A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062809B (zh) | 一种线上测试用例生成方法、装置及电子设备 | |
CN111382077B (zh) | 应用程序崩溃原因定位方法、装置、电子设备及存储介质 | |
CN111414172A (zh) | 应用软件自动部署发布系统及方法 | |
CN110532185B (zh) | 测试方法、装置、电子设备和计算机可读存储介质 | |
CN111427771A (zh) | 一种代码覆盖率分析方法、设备、服务器及可读存储介质 | |
CN110879781A (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
US8117499B2 (en) | Generation of a stimuli based on a test template | |
CN111506341A (zh) | 一种软件配置信息检测方法、装置及系统 | |
CN110704311B (zh) | 一种应用程序测试方法、装置、电子设备及可读存储介质 | |
CN115391228A (zh) | 精准测试方法、装置、设备及介质 | |
CN111104319A (zh) | 一种代码覆盖率测试方法、装置、电子设备及存储介质 | |
CN117076330B (zh) | 一种访存验证方法、系统、电子设备及可读存储介质 | |
CN111399849B (zh) | 一种应用程序安装包的确定方法及系统 | |
CN105301480A (zh) | Soc芯片的测试方法 | |
CN109165127B (zh) | 问题接口的定位方法、装置及电子设备 | |
CN110633204B (zh) | 一种程序缺陷检测方法及装置 | |
CN109189369B (zh) | 一种压缩代码的方法及装置 | |
CN110096888B (zh) | 一种加快验证及分析smm安全隐患的方法及系统 | |
CN113918444A (zh) | 崩溃源代码定位方法、装置、介质及电子设备 | |
CN112580334A (zh) | 一种文案处理方法、装置、服务器及存储介质 | |
CN107678967B (zh) | 单元测试覆盖率生成方法、装置、可读存储介质及设备 | |
CN111026575B (zh) | 一种异常处理方法、装置及电子设备 | |
CN111258886B (zh) | 一种应用程序的异常定位方法及装置 | |
US11860795B2 (en) | Device, system, and method of determining memory requirements and tracking memory usage | |
CN113591141B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |