CN113835920A - 内存异常监测方法、装置及计算机存储介质 - Google Patents

内存异常监测方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN113835920A
CN113835920A CN202111132363.7A CN202111132363A CN113835920A CN 113835920 A CN113835920 A CN 113835920A CN 202111132363 A CN202111132363 A CN 202111132363A CN 113835920 A CN113835920 A CN 113835920A
Authority
CN
China
Prior art keywords
memory
character
current
time point
memory application
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.)
Pending
Application number
CN202111132363.7A
Other languages
English (en)
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.)
Goertek Techology Co Ltd
Original Assignee
Goertek Techology 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 Goertek Techology Co Ltd filed Critical Goertek Techology Co Ltd
Priority to CN202111132363.7A priority Critical patent/CN113835920A/zh
Publication of CN113835920A publication Critical patent/CN113835920A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种内存异常监测方法、装置及计算机存储介质,该方法包括以下步骤:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将内存异常判断字符以及内存申请时间点加入动态内存申请列表;获取当前时刻,并检测内存申请片段的预设位置的当前字符;基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息;本发明解决了内存异常现象的监控问题,实现了内存异常现象的实时监测。

Description

内存异常监测方法、装置及计算机存储介质
技术领域
本发明涉及内存管理领域,尤其涉及一种内存异常监测方法、装置及计算机存储介质。
背景技术
内存异常通常包括内存泄露以及内存越界等。其中,串行端口的硬件把数据发送完毕后,会主动的通知系统,系统接到这个通知后,会释放占用内存。但是由于种种原因,例如蓝牙干扰,链路断开等原因,发送端口并没有成功的通知系统发送完成。这时系统就没有回收这段内存,如果在机场等干扰较严重环境,那么很容易造成系统内存耗尽而崩溃。其中,TWS耳机系统中,双耳间通信(使用蓝牙ACL链路),机盒间通信(使用串口通信),双耳与手机通信(蓝牙SPP链路通信)等很多串行通信的场景中,都可能存在内存泄漏的风险。而内存越界是软件系统主要错误之一,其后果往往不可预料且非常严重。更麻烦的是,它出现的时机是随机的,表现出来的症状是随机的,而且造成的后果也是随机的,这会使程序员很难找出这些故障的现象和本质之间的联系,从而给故障定位带来极大的困难。
发明内容
有鉴于此,本申请实施例提供一种内存异常监测方法、装置及计算机存储介质,旨在解决内存异常现象的监控问题。
本申请实施例提供了一种内存异常监测方法,内存异常检测方法包括:
将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;
将内存异常判断字符以及内存申请时间点加入动态内存申请列表;
获取当前时刻,并检测内存申请片段的预设位置的当前字符;
基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
在一实施例中,基于当前字符与内存异常判断字符之间的关系或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息,包括:
检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符不同,则生成内存异常信息;或者,
获取当前时刻,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
在一实施例中,基于当前字符与内存异常判断字符之间的关系和当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息,包括:
检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符相同,则获取当前时刻,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
在一实施例中,基于当前字符与内存异常判断字符之间的关系和当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息,包括:
获取当前时刻,若当前时刻与内存申请时间点的差值小于或者等于预设时间差阈值,则检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符不同,则生成内存异常信息。
在一实施例中,生成异常信息的步骤之后,包括:
对系统进行实时监测;
若监测到内存异常信息,则生成实时报警信息或者触发内存异常恢复操作。
在一实施例中,获取当前时刻,并检测内存申请片段的预设位置的当前字符的步骤之前,包括:
若到达定时中断服务中的预设时刻,则调用定时中断服务,并将预设时刻作为当前时刻。
在一实施例中,将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点,包括:
将内存异常判断字符设置在内存申请片段的开始位置和/或结束位置。
在一实施例中,内存异常判断字符包括至少一种字符类型。
为实现上述目的,本申请还保护一种内存异常检测装置,装置包括:
构建模块,用于将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将内存异常判断字符以及内存申请时间点加入动态内存申请列表;
数据获取模块,用于获取当前时刻,并检测内存申请片段的预设位置的当前字符;
判断模块,用于基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
为实现上述目的,本申请还保护一种计算机存储介质,计算机存储介质上存储有内存异常监测方法程序,内存异常监测方法程序被处理器执行时实现上述任一的内存异常监测方法方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将内存异常判断字符以及内存申请时间点加入动态内存申请列表;
通过在内存申请片段的预设位置设置内存异常判断字符,能够对内存泄露进行实时监测,而记录内存申请时间点则能够对内存越界进行实时监测;将内存异常判断字符以及内存申请时间点作为参考值加入动态内存申请列表进行保存,避免内存异常判断字符以及内存申请时间点被恶意程序篡改的风险,保证内存异常判断字符以及内存申请时间点的正确性,从而保证基于内存异常判断字符以及内存申请时间点判断的正确性。
获取当前时刻,并检测内存申请片段的预设位置的当前字符;基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息;通过利用当前时刻与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,提高了内存异常实时监测的全面性。
附图说明
图1为本申请内存异常监测方法的第一实施例的流程示意图;
图2为本申请内存异常监测方法的第二实施例的流程示意图;
图3为本申请内存异常监测方法的工作流程示意图;
图4为本申请内存异常监测方法的第三实施例的流程示意图;
图5为本申请内存异常监测方法的第四实施例的流程示意图;
图6为本申请内存异常监测方法的第五实施例的流程示意图;
图7为本申请内存异常监测方法的第六实施例的流程示意图;
图8为本申请内存异常检测装置的示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将内存异常判断字符以及内存申请时间点加入动态内存申请列表;获取当前时刻,并检测内存申请片段的预设位置的当前字符;基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息;本发明解决了内存异常现象的监控及恢复的问题,实现了内存异常现象的实时监测以及恢复。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
参照图1,图1为本申请内存异常监测方法的第一实施例,方法包括:
步骤S110:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点。
在本实施例中,内存异常检测至少包括内存泄露以及内存越界,但并不限定于上述内存异常检测,也可以是其他的内存异常检测。具体地,内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。通常在嵌入式系统开发中,为了高效重复利用内存资源,系统中会有一段公共的内存,可以理解成一段公共的内存银行,应用需要时向系统申请借用,并登记内存的起始地址和借用大小,用完后需要及时归还,以便其他应用再次重复使用。如果各个应用只借用不归还,那可用的空间会越来越少,这就是内存泄露。作为一种不恰当的内存操作,不仅有可能破坏到程序中的数据存取逻辑,严重的时候还可能对其它正在运行的程序甚至整个系统造成影响,使产品失去应有的功能。而且内存泄露一般出现的问题都没有什么规律,在问题出现一段时间后才会表现出来,排查起来很困难。另外,内存越界是指当内存输入超出了预分配的空间大小,就会覆盖该预分配的空间之后的一段存储区域,导致系统异常。
具体地,内存异常判断字符可以是用于判断内存是否存在异常现象的字符或者字符组合,尤其可以用来判断内存越界的内存异常现象。其中,将内存异常判断字符设置在内存申请片段的不同位置,可以监测不同的内存异常现象。内存申请时间点可以是用于判断关于时限的内存异常现象的数据。其中,动态内存的申请可以使用malloc函数完成,malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,且分配的大小就是程序要求的大小。
步骤S120:将内存异常判断字符以及内存申请时间点加入动态内存申请列表。
具体地,动态内存申请列表可以是记录每条内存申请的内存属性;其中,动态内存申请列表至少包括申请时间点以及内存异常判断字符,还可以包括内存申请片段的起始地址以及申请长度。其中,内存异常判断字符以及内存申请时间点作为内存异常的判断参考值。
步骤S130:获取当前时刻,并检测内存申请片段的预设位置的当前字符。
具体地,实时获取当前时刻以及内存申请片段的预设位置的当前字符,并将当前时刻以及内存申请片段的预设位置的当前字符作为对比值与内存申请时间点以及内存异常判断字符进行对比判断。
步骤S140:基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
通过判断对比值与参考值之间的关系,生成内存异常信息;也就是通过判断当前字符与内存异常判断字符之间的关系,或者当前时刻与内存申请时间点之间的关系,或者当前字符与内存异常判断字符之间的关系以及当前时刻与内存申请时间点之间的关系,进行判断,若满足预设条件,则生成内存异常信息。
在本实施例中,将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将内存异常判断字符以及内存申请时间点加入动态内存申请列表;通过在内存申请片段的预设位置设置内存异常判断字符,能够对内存泄露进行实时监测,而记录内存申请时间点则能够对内存越界进行实时监测;将内存异常判断字符以及内存申请时间点作为参考值加入动态内存申请列表进行保存,避免内存异常判断字符以及内存申请时间点被恶意程序篡改的风险,保证内存异常判断字符以及内存申请时间点的正确性,从而保证基于内存异常判断字符以及内存申请时间点判断的正确性。
获取当前时刻,并检测内存申请片段的预设位置的当前字符;基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息;通过利用当前时刻与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,提高了内存异常实时监测的全面性。
参照图2,图2为本申请内存异常监测方法的第二实施例,该方法,包括:
步骤S210:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点。
步骤S220:将内存异常判断字符以及内存申请时间点加入动态内存申请列表。
步骤S230:获取当前时刻,并检测内存申请片段的预设位置的当前字符。
步骤S240:检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符不同,则生成内存异常信息;或者,
获取当前时刻,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
在本实施例中,可以针对内存申请时间点或者内存异常判断字符进行判断。若当前字符与内存异常判断字符不同,比如当前字符为ab,而内存异常判断字符为1!,当两者存在不同时,则说明出现内存异常现象,则可以生成内存异常信息。
也可以利用内存时限对内存异常现象进行判断,若当前时刻与内存申请时间点的差值大于预设时间差阈值,说明该内存申请片段超过预设时间阈值但仍未及时规划,则存在内存异常现象,生成内存异常信息。
需要另外说明的是,检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符不同,则生成内存异常信息,可以是对内存异常现象中的内存越界现象进行判断,则在生成的内存异常信息中可以包含内存越界的原因限定,更有助于用户更快的解决以及恢复内存异常的现象。
获取当前时刻,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息,可以是对内存异常现象中的内存泄露现象进行判断,则在生成的内存异常信息中可以包含内存泄露的原因限定,更有助于用户更快的解决以及恢复内存异常的现象,保持系统顺利运行。
需要另外说明的是,在生成内存异常信息后,说明系统异常,已无法主动释放该内存块,则自动执行free函数,释放对应的动态内存申请列表,及时清除该内存。
第二实施例与第一实施例相比,包括步骤S240,其他步骤在第一实施例中已经进行了阐述,在此不再赘述。
在本实施例中,利用当前字符与内存异常判断字符之间的关系或者当前时刻与内存申请时间点之间的关系对是否存在内存异常进行判断,因判断的对比值为当前字符以及当前时刻,保证了内存异常检测的实时性,从而保证内存异常现象能够及时处理。
参照图3所示为本申请内存异常监测方法的工作流程图,图3中有三个的动态内存申请列表,列表中的信息包括起始地址,申请长度,内存申请时间点以及内存异常判断字符,其中,需要另外说明的是,内存申请时间点可以是申请内存时记录的当时滴答时钟值。
参照图4,图4为本申请内存异常监测方法的第三实施例,该方法,包括:
步骤S310:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点。
步骤S320:将内存异常判断字符以及内存申请时间点加入动态内存申请列表。
步骤S330:获取当前时刻,并检测内存申请片段的预设位置的当前字符。
步骤S340:检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符相同,则获取当前时刻,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
第三实施例与第一实施例相比,包括步骤S340,其他步骤在第一实施例中已经进行了阐述,在此不再赘述。
在本实施例中,结合内存申请时间点以及内存异常判断字符对是否存在内存异常现象进行判断,首先检测当前字符与内存异常判断字符之间的关系,若当前字符与内存异常判断字符相同,然后再利用当前时刻与内存申请时间点之间的关系对是否存在内存异常现象进行判断,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
需要另外说明的是,在本实施例中,若当前字符与内存异常判断字符不相同,则直接生成内存异常信息。
在本实施例中,结合内存申请时间点以及内存异常判断字符对是否存在内存异常现象进行判断,并同时判断内存异常现象并非内存越界,而是内存泄露,进一步保证对内存异常现象判断的准确性。
参照图5,图5为本申请内存异常监测方法的第四实施例,该方法,包括:
步骤S410:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点。
步骤S420:将内存异常判断字符以及内存申请时间点加入动态内存申请列表。
步骤S430:获取当前时刻,并检测内存申请片段的预设位置的当前字符。
步骤S440:获取当前时刻,若当前时刻与内存申请时间点的差值小于或者等于预设时间差阈值,则检测内存申请片段中预设位置的当前字符,若当前字符与内存异常判断字符不同,则生成内存异常信息。
第四实施例与第一实施例相比,包括步骤S440,其他步骤在第一实施例中已经进行了阐述,在此不再赘述。
在本实施例中,结合内存申请时间点以及内存异常判断字符对是否存在内存异常现象进行判断,首先判断当前时刻与内存申请时间点的差值与预设时间差阈值的关系,若当前时刻与内存申请时间点的差值小于或者等于预设时间差阈值,然后再利用当前字符与内存异常判断字符之间的关系对是否存在内存异常现象进行判断,若当前字符与内存异常判断字符不同,则生成内存异常信息。
需要另外说明的是,若当前时刻与内存申请时间点的差值大于预设时间差阈值,则直接生成内存异常信息。
在本实施例中,结合内存申请时间点以及内存异常判断字符对是否存在内存异常现象进行判断,并同时准确判断内存异常现象并非内存泄露,而是内存越界,进一步保证对内存异常现象判断的准确性。
参照图6,图6为本申请内存异常监测方法的第五实施例,该方法,包括:
步骤S510:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点。
步骤S520:将内存异常判断字符以及内存申请时间点加入动态内存申请列表。
步骤S530:获取当前时刻,并检测内存申请片段的预设位置的当前字符。
步骤S540:基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
步骤S550:对系统进行实时监测。
具体地,可以利用监听进程对系统进行实时监测。
步骤S560:若监测到内存异常信息,则生成实时报警信息或者触发内存异常恢复操作。
具体地,生成实时报警信息可以是通过系统产生一个报警信息用于通知用户,并及时进行处理;而触发内存异常恢复操作可以是通过主动调用预设的异常恢复函数,用户可以在异常恢复函数中预设恢复逻辑,报错等动作。
在本实施例中,通过对系统的实时监测,若监测到内存异常信息,则生成实时报警信息或者触发异常恢复操作,保证用户能够及时发现内存异常现象,并及时进行恢复处理,从而保证内存异常现象及时恢复。
参照图7,图7为本申请内存异常监测方法的第六实施例,该方法,包括:
步骤S610:将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点。
步骤S620:将内存异常判断字符以及内存申请时间点加入动态内存申请列表。
步骤S630:若到达定时中断服务中的预设时刻,则调用定时中断服务,并将预设时刻作为当前时刻;
具体地,中断服务可以是一种中断服务程序,用于处理器处理“急件”,是通过执行事先编好的某个特定的程序来完成的。
具体地,到达定时中断服务中的预设时刻,可以是按照滴答时钟周期计算,其中,滴答时钟类似于一个递增的沙漏,系统启动就会随时钟递增计数。比如,当到达滴答时钟周期第一个周期结束时,则调用定期中断服务,并将第一个周期结束时刻作为当前时刻,接着当到达滴答时钟周期第二个周期结束时,则调用定期中断服务,并将第二个周期结束时刻作为当前时刻,以此类推。
步骤S640:获取当前时刻,并检测内存申请片段的预设位置的当前字符。
步骤S650:基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
在本实施例中,通过利用定时中断服务,周期性的准确获取当前时刻,保证当前时刻获取的正确性,从而保证当前时刻与内存申请点之间的关系判断的正确性,进一步保证内存泄露异常现象的及时发现。
在一实施例中,将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点,包括:
将内存异常判断字符设置在内存申请片段的开始位置和/或结束位置。
具体地,将内存异常判断字符设置在内存申请片段的开始位置,可以监测到其他程序是否占用自身的内存引起的内存越界现象;而将内存异常判断字符设置在内存申请片段的结束位置,可以检测到自身的内存越界现象;而将内存异常判断字符设置在内存申请片段的开始位置以及结束位置,则可以对上述两种内存越界现象同时进行监测。
在本实施例中,通过在内存申请片段的不同位置设置内存异常判断字符,对不同类型的内存越界异常进行准确监控,保证对系统中的内存异常实时检测。
在一实施例中,内存异常判断字符至少包括一种字符类型。
具体地,在本实施例中,内存异常判断字符可以是一种字符类型,可以是数字类型,或者字母类型,或者特殊符号类型;也可以是两种以上的数字类型,字母类型以及特殊符号类型的组合,比如11,aa,!#,1a,1!,a!等等。
需要特别说明的是,在本实施例中内存异常判断字符大小可以为2个字节,但并不限定于2个字节,内存异常判断字符的大小可以根据具体需求进行设定。
本申请还保护一种内存异常检测装置20,该装置包括:
构建模块21,用于将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将内存异常判断字符以及内存申请时间点加入动态内存申请列表;
数据获取模块22,用于获取当前时刻,并检测内存申请片段的预设位置的当前字符;
判断模块23,用于基于当前字符与内存异常判断字符之间的关系和/或当前时刻与内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
图8所示装置包括构建模块21、数据获取模块22、判断模块23,该装置可以执行图1至图6所示实施例的方法,本实施例未详细描述的部分,可参考对图1至图6所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2至图8所示实施例中的描述,在此不再赘述。
本申请还保护一种计算机存储介质,计算机存储介质上存储有内存异常监测方法程序,内存异常监测方法程序被处理器执行时实现上述任一所述的内存异常监测方法方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种内存异常监测方法,其特征在于,所述方法包括:
将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;
将所述内存异常判断字符以及所述内存申请时间点加入动态内存申请列表;
获取当前时刻,并检测所述内存申请片段的所述预设位置的当前字符;
基于所述当前字符与所述内存异常判断字符之间的关系和/或当前时刻与所述内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
2.如权利要求1所述的内存异常监测方法,其特征在于,所述基于所述当前字符与所述内存异常判断字符之间的关系或当前时刻与所述内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息,包括:
检测所述内存申请片段中预设位置的当前字符,若所述当前字符与所述内存异常判断字符不同,则生成内存异常信息;或者,
获取当前时刻,若所述当前时刻与所述内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
3.如权利要求1所述的内存异常监测方法,其特征在于,所述基于所述当前字符与所述内存异常判断字符之间的关系和当前时刻与所述内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息,包括:
检测所述内存申请片段中预设位置的当前字符,若所述当前字符与所述内存异常判断字符相同,则获取当前时刻,若所述当前时刻与所述内存申请时间点的差值大于预设时间差阈值,则生成内存异常信息。
4.如权利要求1所述的内存异常监测方法,其特征在于,所述基于当前字符与所述内存异常判断字符之间的关系和当前时刻与所述内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息,包括:
获取当前时刻,若所述当前时刻与所述内存申请时间点的差值小于或者等于预设时间差阈值,则检测所述内存申请片段中预设位置的当前字符,若所述当前字符与所述内存异常判断字符不同,则生成内存异常信息。
5.如权利要求1所述的内存异常监测方法,其特征在于,所述生成异常信息的步骤之后,包括:
对系统进行实时监测;
若监测到所述内存异常信息,则生成实时报警信息或者触发内存异常恢复操作。
6.如权利要求1所述的内存异常监测方法,其特征在于,所述获取当前时刻,并检测所述内存申请片段的所述预设位置的当前字符的步骤之前,包括:
若到达定时中断服务中的预设时刻,则调用定时中断服务,并将所述预设时刻作为所述当前时刻。
7.如权利要求1-4任一项所述的内存异常监测方法,其特征在于,所述将内存异常判断字符设置在内存申请片段的预设位置,包括:
将内存异常判断字符设置在内存申请片段的开始位置和/或结束位置。
8.如权利要求1所述的内存异常监测方法,其特征在于,所述内存异常判断字符至少包括一种字符类型。
9.一种内存异常检测装置,其特征在于,所述装置包括:
构建模块,用于将内存异常判断字符设置在内存申请片段的预设位置,并记录内存申请时间点;将所述内存异常判断字符以及所述内存申请时间点加入动态内存申请列表;
数据获取模块,用于获取当前时刻,并检测所述内存申请片段的所述预设位置的当前字符;
判断模块,用于基于当前字符与所述内存异常判断字符之间的关系和/或当前时刻与所述内存申请时间点之间的关系进行判断,若满足预设条件,则生成内存异常信息。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有内存异常监测方法程序,所述内存异常监测方法程序被处理器执行时实现权利要求1-8任一所述的内存异常监测方法方法的步骤。
CN202111132363.7A 2021-09-26 2021-09-26 内存异常监测方法、装置及计算机存储介质 Pending CN113835920A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111132363.7A CN113835920A (zh) 2021-09-26 2021-09-26 内存异常监测方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111132363.7A CN113835920A (zh) 2021-09-26 2021-09-26 内存异常监测方法、装置及计算机存储介质

Publications (1)

Publication Number Publication Date
CN113835920A true CN113835920A (zh) 2021-12-24

Family

ID=78970512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111132363.7A Pending CN113835920A (zh) 2021-09-26 2021-09-26 内存异常监测方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN113835920A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572460A (zh) * 2014-12-30 2015-04-29 大唐移动通信设备有限公司 一种内存泄露的检测方法和装置
CN105094710A (zh) * 2015-09-06 2015-11-25 国电南瑞科技股份有限公司 基于哈希表的单进程动态存储管理方法
CN106649134A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种内存分配调度的方法和装置
CN111176869A (zh) * 2019-08-01 2020-05-19 腾讯科技(深圳)有限公司 超时检测方法、装置、设备及存储介质
US10832754B1 (en) * 2019-06-06 2020-11-10 Micron Technology, Inc. Current monitor for a memory device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572460A (zh) * 2014-12-30 2015-04-29 大唐移动通信设备有限公司 一种内存泄露的检测方法和装置
CN105094710A (zh) * 2015-09-06 2015-11-25 国电南瑞科技股份有限公司 基于哈希表的单进程动态存储管理方法
CN106649134A (zh) * 2016-12-30 2017-05-10 郑州云海信息技术有限公司 一种内存分配调度的方法和装置
US10832754B1 (en) * 2019-06-06 2020-11-10 Micron Technology, Inc. Current monitor for a memory device
CN111176869A (zh) * 2019-08-01 2020-05-19 腾讯科技(深圳)有限公司 超时检测方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US8250543B2 (en) Software tracing
EP3355197B1 (en) Fault processing method, related apparatus, and computer
US20190205233A1 (en) Fault injection testing apparatus and method
CN108287769B (zh) 一种信息处理方法及装置
CN108197032B (zh) Ios应用的主线程卡顿监测方法、介质、设备及系统
EP3142011A1 (en) Anomaly recovery method for virtual machine in distributed environment
EP2624140A1 (en) Method and system for detecting anomaly of network processor
JP5692414B2 (ja) 検知装置、検知プログラムおよび検知方法
CN110851294B (zh) 一种程序运行崩溃补救的方法及装置
US11055416B2 (en) Detecting vulnerabilities in applications during execution
CN111274060A (zh) 一种确定内存异常的方法、装置、设备和存储介质
CN106201753A (zh) 一种基于linux中PCIE错误的处理方法及系统
KR20180134677A (ko) 결함 주입 테스트 방법 및 장치
CN113835920A (zh) 内存异常监测方法、装置及计算机存储介质
CN111371642A (zh) 网卡故障检测方法、装置、设备及存储介质
CN110704313A (zh) Java虚拟机内存泄漏检测方法及装置
CN108008800B (zh) 一种复位请求处理方法、装置和设备
CN113064765B (zh) 节点异常处理方法、装置、电子设备及机器可读存储介质
CN111090575B (zh) 测试方法
CN114217925A (zh) 一种实现异常自动重启的业务程序运行监控方法及系统
CN110955595A (zh) 问题修复方法、装置、电子设备及计算机可读存储介质
CN111694715A (zh) 一种异常告警方法、装置、设备及机器可读存储介质
CN116414722B (zh) 模糊测试处理方法、装置、模糊测试系统及存储介质
CN110610083A (zh) 对监控数据进行污染判断的方法及相应装置
CN111257683B (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