故障代码定位方法、云端服务器、系统及存储介质技术方案

技术编号:38359782 阅读:8 留言:0更新日期:2023-08-05 17:29
本申请提供一种故障代码定位方法、云端服务器、系统及存储介质,该方法包括:在接收终端设备发送的待检测程序的程序信息之后,根据待检测程序的程序信息,从预设程序库中确定目标程序,目标程序为待检测程序的调试版本;启动目标程序,并获取目标程序的运行日志数据;基于目标程序的运行日志数据,确定存在内存泄漏的目标内存地址的函数调用信息;根据目标内存地址的函数调用信息,定位待检测程序中的故障代码。本申请能够解决当前无法准确定位导致内存泄漏的故障代码的问题。存泄漏的故障代码的问题。存泄漏的故障代码的问题。

【技术实现步骤摘要】
故障代码定位方法、云端服务器、系统及存储介质


[0001]本申请涉及内存检测的
,尤其涉及一种故障代码定位方法、云端服务器、系统及存储介质。

技术介绍

[0002]内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏是软件开发中经常遇到的问题。内存泄漏的危害很大,导致内存泄漏的原因很多,由于其隐蔽性、积累性的特征,比其他内存非法访问错误更难诊断。相关技术中,发生内存泄漏之后,无法准确定位系统程序的故障代码。

技术实现思路

[0003]本申请的主要目的在于提供一种故障代码定位方法、云端服务器、系统及存储介质,旨在解决当前发生内存泄漏之后,无法准确定位系统程序的故障代码的问题。
[0004]第一方面,本申请提供一种故障代码定位方法,应用于云端服务器,所述方法包括:
[0005]接收终端设备发送的待检测程序的程序信息,所述待检测程序是所述终端设备在发生内存泄漏时确定的;
[0006]根据所述待检测程序的程序信息,从预设程序库中确定目标程序,所述目标程序为所述待检测程序的调试版本;
[0007]启动所述目标程序,并获取所述目标程序的运行日志数据;
[0008]基于所述目标程序的运行日志数据,确定存在内存泄漏的目标内存地址的函数调用信息;
[0009]根据所述目标内存地址的函数调用信息,定位所述待检测程序中的故障代码。
[0010]第二方面,本申请还提供一种云端服务器,所述云端服务器包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的故障代码定位方法。
[0011]第三方面,本申请还提供一种故障代码定位系统,包括终端设备和云端服务器,所述终端设备与云端服务器通信连接,其中:
[0012]所述终端设备,用于在确定发生内存泄漏时,获取与内存泄漏相关联的待检测程序的程序信息,并将所述待检测程序的程序信息发送给所述云端服务器;
[0013]所述云端服务器,用于接收所述待检测程序的程序信息,并根据所述待检测程序的程序信息,从预设程序库中确定目标程序,所述目标程序为所述待检测程序的调试版本;
[0014]所述云端服务器,还用于启动所述目标程序,并获取所述目标程序的运行日志数据;
[0015]所述云端服务器,还用于基于所述目标程序的运行日志数据,确定存在内存泄漏
的目标内存地址的函数调用信息;
[0016]所述云端服务器,还用于根据所述目标内存地址的函数调用信息,定位所述待检测程序中的故障代码。
[0017]第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的故障代码定位方法。
[0018]本申请提供一种故障代码定位方法、云端服务器、系统及存储介质,该故障代码定位方法应用于云端服务器,在接收终端设备发送的待检测程序的程序信息之后,根据待检测程序的程序信息,从预设程序库中确定目标程序,目标程序为待检测程序的调试版本;启动目标程序,并获取目标程序的运行日志数据;基于目标程序的运行日志数据,确定存在内存泄漏的目标内存地址的函数调用信息;根据目标内存地址的函数调用信息,定位待检测程序中的故障代码。本申请提供的方案通过云端服务器来定位在终端设备运行的待检测程序中的故障代码,具体通过在云端服务器启动作为待检测程序的调试版本的目标程序,从而模拟待检测程序在终端设备的运行环境,同时通过模拟环境运行后得到的函数调用信息来定位待检测程序中的故障代码,能够快速、自动化的检测出故障代码,实现内存泄漏相关联的程序中故障代码的准确定位,极大的提高故障代码的定位效率和准确度,还能够降低定位成本。
附图说明
[0019]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本申请实施例提供的一种故障代码定位方法的步骤流程示意图;
[0021]图2为图1中的故障代码定位方法的子步骤流程示意图;
[0022]图3为实施本实施例提供的故障代码定位方法的一场景示意图;
[0023]图4为实施本实施例提供的故障代码定位方法的另一场景示意图;
[0024]图5为本申请实施例提供的另一种故障代码定位方法的步骤流程示意图;
[0025]图6为实施本实施例提供的故障代码定位方法的又一场景示意图;
[0026]图7为本申请实施例提供的一种云端服务器的示意性框图;
[0027]图8为本申请实施例提供的一种故障代码定位系统的示意性框图。
[0028]本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0029]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0030]附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际
执行的顺序有可能根据实际情况改变。
[0031]内存泄漏问题是软件开发中经常遇到的问题,由于其隐蔽性、积累性的特征,比其他内存非法访问错误更难检测。在嵌入式终端或者消费终端领域,目前业界对内存泄漏问题的诊断主要有两大类手段:1、或者通过一些内存泄漏检测工具,在设备出厂前,软件的开发过程中使用一些内存检测工具对开发中的软件debug版本进行测试,试图在产品出厂前发现解决问题。2、在设备出厂后,依靠手动、自动化工具观测设备上程序在运行时内存的变化情况,来发现是否存在内存泄漏。可见相关技术中,终端设备发生内存泄漏之后,无法准确诊断内存泄漏问题,即无法准确定位系统程序的故障代码。
[0032]为解决上述问题,本申请实施例提供一种故障代码定位方法、云端服务器、系统及存储介质,旨在解决当前无法准确定位导致内存泄漏的故障代码的问题,同时还能降低研发成本。其中,该故障代码定位方法可应用于云端服务器中,该云端服务器可以为单台的服务器,也可以为由多台服务器组成的服务器集群。其中,该云端服务器与终端设备通信连接,该终端设备可以为手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备。
[0033]下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0034]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种故障代码定位方法,其特征在于,应用于云端服务器,所述方法包括:接收终端设备发送的待检测程序的程序信息,所述待检测程序是所述终端设备在发生内存泄漏时确定的;根据所述待检测程序的程序信息,从预设程序库中确定目标程序,所述目标程序为所述待检测程序的调试版本;启动所述目标程序,并获取所述目标程序的运行日志数据;基于所述目标程序的运行日志数据,确定存在内存泄漏的目标内存地址的函数调用信息;根据所述目标内存地址的函数调用信息,定位所述待检测程序中的故障代码。2.如权利要求1所述的故障代码定位方法,其特征在于,所述启动所述目标程序,包括:接收所述终端设备发送的待检测程序的业务日志数据;根据所述业务日志数据,模拟所述待检测程序的运行环境;在所述运行环境下,启动所述待检测程序对应的所述目标程序。3.如权利要求2所述的故障代码定位方法,其特征在于,所述根据所述业务日志数据,模拟所述待检测程序的运行环境,包括:获取所述业务日志数据中的函数调用数据,以及所述函数调用数据相关联的程序运行参数;获取所述终端设备的运行环境数据,并基于所述程序运行参数更新所述运行环境数据;加载更新后的所述运行环境数据,以模拟所述待检测程序的运行环境。4.如权利要求1所述的故障代码定位方法,其特征在于,所述接收终端设备发送的待检测程序的程序信息之后,还包括:通过所述程序信息,将所述待检测程序与故障程序库中的多个故障程序进行匹配;滤除匹配的所述待检测程序,并保留不匹配的所述待检测程序。5.如权利要求1

4任一项所述的故障代码定位方法,其特征在于,所述运行日志数据包括多个行数据;所述基于所述目标程序的运行日志数据,确定存在内存泄漏的目标内存地址的函数调用信息,包括:根据所述多个行数据中内存地址的调用函数,从多个所述行数据中筛选出目标行数据;将所述目标行数据中的内存地址作为所述目标内存地址,并记录所述目标内存地址相关联的函数调用信息。6.如权利要求4所述的故障代码定位方法,其特征在于,所述根据所述多个行数据中内存地址的调用函数,从多个所述行数据中筛选出目标行数据,包括:轮询检测每个所述行数据中内存地址的调用函数;在所述行数据中内存地址的调用函数包括申请调用函数,且不包括释放调用函数时,保留所述行数据作为目标行数据。7.如权利要求6所述的故障代码定位方法,其特征在于,所述将所述多个目标行数据中的内存地址作为所述目标内存地址,包括:...

【专利技术属性】
技术研发人员:丁鹏
申请(专利权)人:深圳开鸿数字产业发展有限公司
类型:发明
国别省市:

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

1