[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN111061614A - 一种内存实时监控处理方法和系统 - Google Patents

一种内存实时监控处理方法和系统 Download PDF

Info

Publication number
CN111061614A
CN111061614A CN201911334996.9A CN201911334996A CN111061614A CN 111061614 A CN111061614 A CN 111061614A CN 201911334996 A CN201911334996 A CN 201911334996A CN 111061614 A CN111061614 A CN 111061614A
Authority
CN
China
Prior art keywords
memory
partition
blocks
block
file
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
CN201911334996.9A
Other languages
English (en)
Other versions
CN111061614B (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.)
Wuxi Vimicro Corp
Original Assignee
Wuxi Vimicro Corp
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 Wuxi Vimicro Corp filed Critical Wuxi Vimicro Corp
Priority to CN201911334996.9A priority Critical patent/CN111061614B/zh
Publication of CN111061614A publication Critical patent/CN111061614A/zh
Application granted granted Critical
Publication of CN111061614B publication Critical patent/CN111061614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种内存实时监控处理方法和系统,所述方法包括基于J‑Link技术实时读取内存管理控制块和内存分区块,并形成文件;获取所述内存管理模块的数据结构;基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况;基于当前内存的使用情况,读取各内存分区块的相关信息,完成内存实时监控。本发明能够自动监控嵌入式小系统内存使用状态(包含内存分区数目、各内存分区内内存分区块大小、各内存分区内所有内存分区块的数目、以及各内存分区内空闲内存分区块数目等),同时还能辅助的查询内存分区块,判断是否存在内存溢出等相关问题。

Description

一种内存实时监控处理方法和系统
技术领域
本发明属于内存数据监控技术领域,具体涉及一种内存实时监控处理方法和系统。
背景技术
在集成电路芯片中,芯片内部的存储区域基本由ROM、RAM和FLASH构成。在小规模的嵌入式解决方案中,通常以ARM Cortex系列处理器为主,以C语言架构来实现软件功能逻辑语言。
在C语言架构的嵌入式系统中,内存就是由RAM构成的。RAM具有较高的读写速度,但存储容量小,且价格过高。另外,由于RAM是由电子器件组成,因此只能在当时存放程序和数据,并且一旦关闭电源或发生断电,存储在其上的信息将全部消失且无法恢复。
在实际应用到嵌入式系统中时,会设定内存管理模块,从内存中划分出一个区域作为内存池。当用户申请的内存大于设定的阈值时,则为大内存申请,内存管理模块向系统申请为用户在内存池以外的区域分配一块内存,用完后,释放该内存。否则,为小内存申请,内存管理模块在内存池中为用户分配一块内存,用完后,归还内存池。
在内存使用过程中,必然存在内存越界的情况。传统以及现有的做法都是在嵌入式内存管理单元中加入越界处理模块,再通过通信接口进行字符串的打印输出,来查看实时的查看当前内存的状态信息,常见的内存查内存越界的通用方案包括:
(1)在每个内存块的上下边界加入隔离区,实时监测隔离区的数据是否被异常破坏,来过滤是否内存越界异常。
(2)在系统中内置专门的监控单元,实时确认内存边界的典型值是否被破坏。
(3)增加内存管理模块的处理逻辑,从管理方法上去检测内存是否越界破坏。
上述方案均存在耗费系统的单字长定点指令平均执行速度(millioninstructions per second,MIPS)的问题,使得系统或多或少由于逻辑的加入而引起系统任务延迟,系统功耗升高,造成不必要的资源浪费。另外一个最关键的问题是,打印输出本身也非常耗单字长定点指令平均执行速度。
在一般嵌入式小系统中,RAM的使用分配都是按照图1来做的。静态RAM空间(Data区)用于存储程序的DATA,程序在启动后,会把全局变量映射到静态RAM空间进行初始化,在完成芯片tape-out后,这部分code所匹配的Data区的大小就固定下来了,静态RAM空间中存储的内容包括中断向量表以及全局变量;另外这部分也是可以按某特定的时间间隔进行读取的,并可在本地进行实时查看。动态RAM空间(动态分配)则是用来动态申请给系统使用的RAM区域,该区域在系统中由内存管理模块进行管理。
内存管理模块根据不同的系统选择按各自的需求来定,如图2(a)和图2(b)所示,为嵌入式系统官方提供的内存管理模块。系统首先将一块大的内存块分为若干个分区,每个分区又分割成若干个内存块,各内存块的大小均相同;不同内存分区中内存块的大小是不同的;利用这种“分区分块”机制,使得内存申请/释放的时间固定下来。
每个内存块又被分为若干个大小相同的小块,这些小块的头部均设有NODE标记,用于指示当前小块的地址,其结束位置设置典型值做内存溢出标志;在使用时这个溢出检测间隔区是可以去除的。
现有技术中为了实现内存监控,在每个内存申请开始时,由系统函数在每个小块的头部采用4个字节指示下一小块的地址,另外至少会增加4个字节的典型值来分隔每两个内存块,写入特殊的MAGIC_NUMBER=0xdeaddead来指示当前为分隔区;
以一个实际的示例为参考,如图3所示,注意分区是以0x20007024为分区首地址,分区内存块数目为10,每个内存块的大小为100字节的情况列表如下:0x20007024为该区的首地址,也是分区首块的地址;而0x20007088为第2块的地址;值得注意的是,图3中标记的阴影区域为分隔区,用于存储magic number。在每次释放分区块时,需确认当前magicnumber是否存在内存溢出。
该方式在研发阶段通过点对点的方式去确认某些分块的内存溢出,再通过printf进行字符输出,让研发工程师看到溢出所发生的块,如果这种打印信息以刷屏的方式进行显示的话,则根本无法进行查看;还需要无辜地消耗一部分内存和一部分mips去处理这种异常问题;只能通过查看当前log文件,再辅助代码逻辑来定位问题所在。若内存使用达到峰值(高点),所发生的申请内存都是无效的,则系统会出现异常,会对内存的使用量监控造成缺失。即使实时的打印控制块的信息输出,由于信息量非常大,只能在打印输出结束后再去查看,无法实现实时查看和监控。
在产品阶段,若输出类型的调试信息,则会非常影响产品的体验。且对于本来就内存非常紧张的嵌入式小系统来说,每个小块都增加4个字节magic number,一旦出现数量较多的分块,必然会导致所消耗的内存出现剧烈增加,可见,该方式不适用于产品阶段,。
另外,该方式只能独立的获取单个内存块的处理情况,在高速访问内存块中时,采用哪种方式去查看内存的处理情况都是件非常难的事。
发明内容
针对上述问题,本发明提出一种内存实时监控处理方法和系统,能够自动监控嵌入式小系统内存使用状态(包含内存分区数目、各内存分区内内存分区块大小、各内存分区内所有内存分区块的数目、以及各内存分区内空闲内存分区块数目等)。
为了实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
第一方面,本发明提供了一种内存实时监控处理方法,包括:
基于J-Link技术实时读取内存管理控制块和内存分区块,并形成文件;
获取所述内存管理模块的数据结构;
基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况;
基于当前内存的使用情况,读取各内存分区块的相关信息,完成内存实时监控。
可选地,所述文件为bin文件,所述基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况,包括以下步骤:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
根据所述内存分区数目,依次获取各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表,所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
可选地,所述存储所有获得的信息形成内存管理列表步骤之后,还包括:
将所述内存管理列表进行图形化显示。
可选地,所述文件为bin文件,所述基于当前内存的使用情况,读取各内存分区块的相关信息,包括以下步骤:
从所述当前内存的使用情况中获取内存分区数目,依次获取各内存分区中内存分区块的大小和内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测各内存分区中内存分区块中是否存在内存溢出块,存在则进行标记,否则进行下一内存分区块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表,所述信息包括各内存分区中各内存分区块的溢出标记信息,以及各内存分区块相对应大小和所在内存分区。
可选地,所述存储所有获得的信息形成内存块列表步骤之后,还包括:
将所述内存块列表进行图形化显示。
第二方面,本发明提供了一种内存实时监控处理系统,包括:
J-Link连接模块,设于电路板和上位机之间;
J-Link读取内存模块,设于上位机内,读取电路板中的内存管理控制块和内存分区块,并形成文件,还读取内存管理控制块的数据结构;
内存块解析模块,基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况;并基于当前内存的使用情况,读取各内存分区块的相关信息,完成内存实时监控。
可选地,所述文件为bin文件,所述基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况,包括以下步骤:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
根据所述内存分区数目,依次获取各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表,所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
可选地,所述文件为bin文件,所述基于当前内存的使用情况,读取各内存分区块的相关信息,包括以下步骤:
从所述当前内存的使用情况中获取内存分区数目,依次获取各内存分区中内存分区块的大小和内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测各内存分区中内存分区块中是否存在内存溢出块,存在则进行标记,否则进行下一内存分区块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表,所述信息包括各内存分区中各内存分区块的溢出标记信息,以及各内存分区块相对应大小和所在内存分区。
可选地,所述系统还包括终端显示模块,所述终端显示模块与所述内存解析模块相连,用于将所述内存块解析模块中的文件进行图形化显示。
作为本发明的进一步改进,所述。
与现有技术相比,本发明具有如下有益效果中的一个或多个:
(1)本发明能够实时监控获取嵌入式小系统内存使用状态(其包含内分区数目、分区内存块大小、分区内存块数目、以及分区内存空闲块数目等);同时还能辅助的检查内存块,其是否存在内存溢出等相关问题,实时动态的显示内存详细信息;
(2)本发明实现获取自动化且完美的借助了Segger提供的SDK开发包,不需要对原有的工具做额外的改动。
(3)本发明不仅适用于ARM Cortex M系列的处理器,对于任何用使用J-LINK来进行开发的项目嵌入式小系统原则上都适用。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1为现有技术中RAM的使用分配示意图;
图2(a)为嵌入式系统官方提供的内存管理模块示意图之一;
图2(b)为嵌入式系统官方提供的内存管理模块示意图之二;
图3为现有技术中内存溢出示意图;
图4为本发明一种实施例的内存实时监控处理系统的结构示意图;
图5为本发明一种实施例的内存实时监控处理方法的流程示意图;
图6为本发明一种实施例的对获取到的内存管理模块的解析示意图;
图7为本发明一种实施例的对获取到的内存分区块的解析示意图;
图8为本发明一种实施例的当前分区使用状态示意图;
图9为本发明一种实施例的内存溢出示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的保护范围。
下面结合附图对本发明的应用原理作详细的描述。
实施例1
本发明实施例中提供了一种内存实时监控处理方法,如图5-8所示,包括以下步骤:
(1)基于J-Link技术实时读取内存管理控制块和内存分区块,并形成文件;所述的J-Link技术指的是利用ARM官方提供的J-LINK连接模块,连接电路板以及上位机的USB端口,读取内存管理控制块和内存分区块到上位机上进行本地分析处理;
(2)获取所述内存管理模块的数据结构;
(3)基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用的情况;
(4)基于当前内存的使用的情况,读取各内存分区块的相关信息,完成内存实时监控。
在本发明实施例的一种具体实施方式中,所述文件为bin文件,所述基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况,包括以下步骤:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
根据所述内存分区数目,依次获取各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表(即List1文件),所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
进一步地,所述存储所有获得的信息形成内存管理列表步骤之后,还包括:
将所述内存管理列表进行图形化显示。
在本发明实施例的一种具体实施方式中,所述文件为bin文件,所述基于当前内存的使用情况,读取各内存分区块的相关信息,包括以下步骤:
从所述当前内存的使用情况中获取内存分区数目,依次获取各内存分区中内存分区块的大小和内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测各内存分区中内存分区块中是否存在内存溢出块,存在则进行标记,否则进行下一内存分区块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表(即List2文件),所述信息包括各内存分区中各内存分区块的溢出标记信息,以及各内存分区块相对应大小和所在内存分区。
进一步地,所述存储所有获得的信息形成内存块列表步骤之后,还包括:
将所述内存块列表进行图形化显示。
实施例2
为了实现将所有的工作重心都向上位机移动,模块独立分离,电路板(下位机)内存管理专门做自己独立的事,至于内存实时监控则由上位机来做。
本发明实施例中提供了一种内存实时监控处理系统,在所有器件都上电后,使用J-LINK连接模块连接电路板以及上位机的USB端口,启动内存实时监控软件,在确认J-LINK连接模块通路是PASS后,则实时读取电路板中的内存管理控制块和内存分区块,并形成bin文件。基于获取到的内存管理模块的数据结构,解析所述bin文件,查看内存的使用状态以及检测是否存在内存溢出等相关问题,再把这种形式的读取,做成一个LOOP,实现利用终端UI实时显示内存状态,所述的内存状态包括每个内存分区内的空闲内存分区块、以及使用块,监控其峰值占用分块的状态,以及查验系统是否存在欠缺考虑的模块。
具体地,如图4所示,所述内存实时监控处理系统包括:
J-Link连接模块,设于电路板和上位机之间;在具体实施过程中,所述J-Link连接模块为J-Link仿真器;
J-Link读取内存模块,设于上位机内,读取电路板中的内存管理控制块和内存分区块,并形成文件,还读取内存管理控制块的数据结构;
内存块解析模块,基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况;并基于当前内存的使用情况,读取内存分区块中的相关信息,完成内存实时监控。
在本发明实施例的一种具体实施方式中,所述文件为bin文件,所述基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况,包括以下步骤:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
根据所述内存分区数目,依次获取各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表,所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
在本发明实施例的一种具体实施方式中,所述文件为bin文件,所述基于当前内存的使用情况,读取各内存分区块的相关信息,包括以下步骤:
从所述当前内存的使用情况中获取内存分区数目,依次获取各内存分区中内存分区块的大小和内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测各内存分区中内存分区块中是否存在内存溢出块,存在则进行标记,否则进行下一内存分区块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表,所述信息包括各内存分区中各内存分区块的溢出标记信息,以及各内存分区块相对应大小和所在内存分区。
在本发明实施例的一种具体实施方式中,所述系统还包括终端显示模块,所述终端显示模块与所述内存解析模块相连,用于将所述内存块解析模块中的文件进行图形化显示。
在具体实施过程中,分区比这复杂,还会辅助内存的树形表进行显示,而且保存异常情况下,当前时间点前后数据信息,以及解析出来LOG辅助信息,嵌入式小系统内存异常后,上位机软件会全部dump整个内存数据进行本地保存。。
本发明中之所以选择J-Link技术来实现内存监控,是因为在基于ARM嵌入开发过程中,J-Link都是必须的设备,在研发的初期阶段,有些比较棘手的问题,都得借助于仿真器在线调试来定位问题;而且其通过仿真器读取内存不会给系统造成任何影响,这种途径可以每秒1.5MB的速度从内存中读取数据,完全能满足小系统的内存监控要求。
本发明实施例中的J-Link连接模块是采用Segger官方提供的二次开发SDK进行再次开发的,具有非常成熟的接口,在连接成功后,系统会使用接口去获取所连接的电路板的硬件信息,根据这些个信息就能判断当前连接成功与否;在关闭软件时,需要释放当前连接的接口,不然会造成SDK接口内存泄露。
本发明实施例中的J-Link读取内存模块中采用的是Read接口读取电路板中的内存管理控制块和内存分区块,该接口为同步接口,读取成功后于本地形成一个指定大小内存BIN文件。这个过程中要注意读取的时间间隔,读取的速度上限为12Mbps(受限与J-Link支持的USB接口类型,目前其支持USB2.0),超过这个limit后,就会遇到瓶颈。但对于小的嵌入式小系统的能满足大多数的。
通过读取内存管理控制模块的数据结构,来查看内存实时的使用内存状态,所述内存管理控制模块的数据结构是一个指定的数据结构(可以查看下位机的Code中看到),通过对数据结构中信息的解析,可以获取当前内存的使用的情况;比如说内存在某些时刻、某些场景使用的峰值情况,Read接口不仅可以读取内存,也同样可以读取静态RAM区一些全局变量的取值,通过这些就能判断某些预设场景,从而更能全面的助力研发的分析。基于获取到的数据结构对bin文件进行结构化处理,就能够获得当前内存的使用的情况。
由于所述Bin文件的数据结构与内存管理控制模块的数据结构一致。本发明实施例中的内存块解析模块,根据读取的内容不同,其调用的解析处理流程也是不同的。
如果仅是做实时内存监控使用,则高频的读取内存管理控制接口即可,然后再辅助场景类型,去查看各个case下内存使用情况(包含当前分区块数目、每个分区块数、分区块中已使用数目、分区块中未使用数目),在终端显示上会显示柱状态图,根据不同场景列出,非常的清晰明了。
具体为:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
不断执行获取内存分区#i中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表(List1文件),所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
如图8所示,以两个不同的颜色区分当前分区使用状态,且在每个柱状图上显示当前使用的情况。
如果要查看内存分区块是否存在溢出,则解析各个内存分区中的各个内存分区块,查看其各个的地址是否存在异常写坏问题,当前这种情况下也会去读取当前内存的使用情况,在这种情况下,终端显示上会进行特殊处理。
具体为:
从所述当前内存的使用情况中获取内存分区数目,再依次获取内存分区#i内存分区块的大小、内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测内存分区#i中是否存在内存溢出的内存分区块,存在则进行标记,否则进行下一块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表(List2文件)。
比如说在内存分区#2(每分块为256字节)的某内存分区块出现内存越界了,如图9中的灰色区域所示。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (9)

1.一种内存实时监控处理方法,其特征在于,包括:
基于J-Link技术实时读取内存管理控制块和内存分区块,并形成文件;
获取所述内存管理模块的数据结构;
基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况;
基于当前内存的使用情况,读取各内存分区块的相关信息,完成内存实时监控。
2.根据权利要求1所述的一种内存实时监控处理方法,其特征在于:所述文件为bin文件,所述基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况,包括以下步骤:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
根据所述内存分区数目,依次获取各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表,所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
3.根据权利要求2所述的一种内存实时监控处理方法,其特征在于:所述存储所有获得的信息形成内存管理列表步骤之后,还包括:
将所述内存管理列表进行图形化显示。
4.根据权利要求1所述的一种内存实时监控处理方法,其特征在于:所述文件为bin文件,所述基于当前内存的使用情况,读取各内存分区块中的相关信息,包括以下步骤:
从所述当前内存的使用情况中获取内存分区数目,依次获取各内存分区中内存分区块的大小和内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测各内存分区中内存分区块中是否存在内存溢出块,存在则进行标记,否则进行下一内存分区块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表,所述信息包括各内存分区中各内存分区块的溢出标记信息,以及各内存分区块相对应大小和所在内存分区。
5.根据权利要求4所述的一种内存实时监控处理方法,其特征在于:所述存储所有获得的信息形成内存块列表步骤之后,还包括:
将所述内存块列表进行图形化显示。
6.一种内存实时监控处理系统,其特征在于,包括:
J-Link连接模块,设于电路板和上位机之间;
J-Link读取内存模块,设于上位机内,读取电路板中的内存管理控制块和内存分区块,并形成文件,还读取内存管理控制块的数据结构;
内存块解析模块,基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况;并基于当前内存的使用情况,读取各内存分区块的相关信息,完成内存实时监控。
7.根据权利要求6所述的一种内存实时监控处理系统,其特征在于:所述文件为bin文件,所述基于获取到的内存管理模块的数据结构,解析所述文件,获得当前内存的使用情况,包括以下步骤:
基于获取到的内存管理模块的数据结构,解析所述bin文件,获得内存分区数目;
根据所述内存分区数目,依次获取各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目,直至遍历完所有的内存分区;
存储所有获得的信息形成内存管理列表,所述信息包括内存分区总数目,以及各内存分区中内存分区块的大小、内存分区块的数目和空闲内存分区块的数目。
8.根据权利要求6所述的一种内存实时监控处理系统,其特征在于:所述文件为bin文件,所述基于当前内存的使用情况,读取各内存分区块的相关信息,包括以下步骤:
从所述当前内存的使用情况中获取内存分区数目,依次获取各内存分区中内存分区块的大小和内存分区块的总数目;
基于获取到的各内存分区中内存分区块的信息,不断执行检测各内存分区中内存分区块中是否存在内存溢出块,存在则进行标记,否则进行下一内存分区块检测,直至遍历完所有的内存分区块;
存储所有获得的信息形成内存块列表,所述信息包括各内存分区中各内存分区块的溢出标记信息,以及各内存分区块相对应大小和所在内存分区。
9.根据权利要求6所述的一种内存实时监控处理系统,其特征在于:所述系统还包括终端显示模块,所述终端显示模块与所述内存解析模块相连,用于将所述内存块解析模块中的文件进行图形化显示。
CN201911334996.9A 2019-12-23 2019-12-23 一种内存实时监控处理方法和系统 Active CN111061614B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911334996.9A CN111061614B (zh) 2019-12-23 2019-12-23 一种内存实时监控处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911334996.9A CN111061614B (zh) 2019-12-23 2019-12-23 一种内存实时监控处理方法和系统

Publications (2)

Publication Number Publication Date
CN111061614A true CN111061614A (zh) 2020-04-24
CN111061614B CN111061614B (zh) 2023-07-04

Family

ID=70301673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911334996.9A Active CN111061614B (zh) 2019-12-23 2019-12-23 一种内存实时监控处理方法和系统

Country Status (1)

Country Link
CN (1) CN111061614B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984401A (zh) * 2020-07-24 2020-11-24 五八有限公司 一种内存溢出管理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110042A (zh) * 2006-07-20 2008-01-23 中兴通讯股份有限公司 一种检测内存访问越界的方法
CN103927251A (zh) * 2014-03-18 2014-07-16 烽火通信科技股份有限公司 一种嵌入式系统的日志管理方法
CN104239192A (zh) * 2013-06-21 2014-12-24 中兴通讯股份有限公司 内存监控处理方法及装置
CN106909480A (zh) * 2017-01-19 2017-06-30 华南师范大学 一种嵌入式系统交叉调试方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110042A (zh) * 2006-07-20 2008-01-23 中兴通讯股份有限公司 一种检测内存访问越界的方法
CN104239192A (zh) * 2013-06-21 2014-12-24 中兴通讯股份有限公司 内存监控处理方法及装置
CN103927251A (zh) * 2014-03-18 2014-07-16 烽火通信科技股份有限公司 一种嵌入式系统的日志管理方法
CN106909480A (zh) * 2017-01-19 2017-06-30 华南师范大学 一种嵌入式系统交叉调试方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984401A (zh) * 2020-07-24 2020-11-24 五八有限公司 一种内存溢出管理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111061614B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN106569904A (zh) 一种信息存储方法和装置、及服务器
CN106227676B (zh) 一种高速缓存以及从高速缓存中读取数据的方法和装置
CN111857840A (zh) 基本输入输出系统bios启动方法及装置
CN107861790A (zh) 虚拟机磁盘空间扩展方法、装置、宿主机及可读存储介质
CN109257249A (zh) 一种网卡稳定性测试方法、装置、终端及存储介质
US8966212B2 (en) Memory management method, computer system and computer readable medium
CN114880259A (zh) 数据处理方法、装置、系统、电子设备及存储介质
CN104216771A (zh) 软件程序的重启方法及装置
CN111061614A (zh) 一种内存实时监控处理方法和系统
CN118051277A (zh) 服务器的启动方法、装置、存储介质和电子设备
CN116820908A (zh) 基于Locust的性能测试方法、装置、设备及介质
CN105893221B (zh) 终端运行时长的告警方法及装置
US20100153622A1 (en) Data Access Controller and Data Accessing Method
CN100472468C (zh) 计算机系统、计算机网络及其方法
CN109933435B (zh) 控制方法、装置及计算机设备
CN115756872B (zh) 基于数据分析的计算机内存释放系统
CN101751283B (zh) 虚拟机监视器,虚拟机系统及客户操作系统状态获取方法
CN107957923A (zh) 一种内存诊断方法和装置
CN116560791A (zh) 进程的处理器亲和性管理方法、装置及电子设备
CN100492299C (zh) 一种嵌入式软件开发的方法及系统
CN114443479A (zh) 内存泄露的定位方法、装置、存储介质和电子设备
CN110032085B (zh) 一种适用于专用处理器的多调试模式电路及其监测仿真方法
CN114691469A (zh) 内存越界检测方法、装置、电子设备及存储介质
CN113687942A (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