内存的访问检测方法及其装置、电子设备以及计算机存储介质与流程

文档序号:38291074发布日期:2024-06-12 23:40阅读:11来源:国知局
内存的访问检测方法及其装置、电子设备以及计算机存储介质与流程

本申请涉及计算机,尤其涉及一种内存的访问检测方法及其装置、电子设备以及计算机存储介质。


背景技术:

1、操作系统中的进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位,一个进程可以包括多个线程,进程中的内存空间是可供多个线程共享的。也就是说,线程之间共享主内存,但每个线程都有对应的私有工作内存,线程之间无法直接访问对方的私有工作内存,线程间变量值的传递均需要通过主内存来完成,且线程对变量的所有操作(读取、赋值等)需要在私有工作内存中进行,而不能直接读写主内存中的变量。因此,在操作系统中需要对线程访问内存空间进行检测。

2、相关技术中,对于线程访问非法内存空间的检测,主要是依赖静态检测工具,其中,静态检测工具进行线程访问非法内存空间的检测时,无法检测在程序实际运行过程中的多线程在不定的时序下访问非法内存空间的问题。即,相关技术中存在静态检测阶段无法实现对多线程中访问非法内存空间检测的功能。


技术实现思路

1、有鉴于此,本申请实施例提供一种内存的访问检测方法及其装置、电子设备以及计算机存储介质,以解决或缓解相关技术中存在静态检测阶段无法对多线程中访问非法内存空间检测的功能。

2、根据本申请实施例的第一方面,提供了一种内存的访问检测方法,包括:基于关键词规则判断线程的状态,并判断线程的状态是否属于分离状态;在线程的状态属于所述分离状态时,将属性信息写入线程对应的词法单元链表,其中,所述词法单元链表基于代码的每个符号生成,用于记录符号信息以及上下文关联信息;在处于分离状态的线程中调用变量、函数时,遍历线程对应的词法单元链表的结点,检测线程是否访问非法内存空间;若线程访问非法内存空间,则执行报警操作。

3、在本申请的一些实施例中,在线程的状态属于分离状态时,将线程的属性信息写入线程对应的词法单元链表,包括:获取线程的线程标识和线程变量值;将线程标识和线程变量值作为线程的属性信息,写入到词法单元链表。

4、在本申请的一些实施例中,将线程标识和线程变量值作为线程的属性信息,写入到词法单元链表,包括:将每个线程标识及对应的线程变量值以键值对形式表示,形成具有多个键值对的键值对列表,并将键值对列表写入词法单元链表。

5、在本申请的一些实施例中,在处于分离状态的线程中调用变量时,遍历线程对应的词法单元链表的结点,检测目线程是否访问非法内存空间,包括:在处于分离状态的线程中调用变量时,遍历线程对应的词法单元链表,查询线程对应的线程变量值;判断线程变量值是否为未定义线程变量值;若是,则确定线程访问非法内存空间。

6、在本申请的一些实施例中,在基于关键词规则判断线程的状态之前,方法还包括;获取待解析源码文件,并对待解析源码文件进行有效性检查;对待解析源码文件进行解析得到目标源码的属性信息;将目标源码的属性信息写入到词法单元链表相应的结点中。

7、在本申请的一些实施例中,对待解析源码文件进行解析得到目标源码的属性信息,包括:对待解析源码文件进行解析得到目标源码的代码行列信息、代码命名空间信息和线程空间信息;将目标源码的代码行列信息、代码命名空间信息和线程空间信息确定为目标源码的属性信息。

8、在本申请的一些实施例中,若线程访问非法内存空间,则执行报警操作,包括:在线程访问非法内存空间时,确定线程的空间信息;根据线程访问非法内存空间的提示信息和线程的空间信息,生成检查报告,并将检查报告输出,以执行报警操作。

9、根据本申请实施例的第二方面,提供了一种内存的访问检测装置,该装置包括:判断模块,用于基于关键词规则判断线程的状态,并判断线程的状态是否属于分离状态;写入模块,用于在线程的状态属于分离状态时,将属性信息写入线程对应的词法单元链表,其中,词法单元链表基于代码的每个符号生成,用于记录符号信息以及上下文关联信息;检测模块,用于在处于分离状态的线程中调用变量时,遍历线程对应的词法单元链表的结点,检测线程是否访问非法内存空间;报警模块,用于若线程访问非法内存空间,则执行报警操作。

10、根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如上述任一实施例的内存的访问检测方法对应的操作。

11、根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一实施例的内存的访问检测方法。

12、根据本申请实施例提供的内存的访问检测方法及其装置、存储介质和电子设备,在线程处于分离状态时,获取该线程的属性信息,并预先存储在词法单元链表中,以在调用该线程时,遍历该线程对应的词法单元链表,确定线程是否访问非法内存空间,若该线程访问非法内存空间,则执行报警操作,及时地对多线程访问非法内存空间的情况进行报警提醒,且本申请在编译前进行多线程内存访问的检测,无需占用过多车载终端系统的内存资源。



技术特征:

1.一种内存的访问检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的内存的访问检测方法,其特征在于,在所述线程的状态属于所述分离状态时,将所述线程的属性信息写入所述线程对应的词法单元链表,包括:

3.根据权利要求2所述的内存的访问检测方法,其特征在于,将所述线程标识和所述线程变量值作为所述线程的属性信息,写入到所述词法单元链表,包括:

4.根据权利要求1所述的内存的访问检测方法,其特征在于,在处于所述分离状态的线程中调用变量、函数时,遍历所述线程对应的词法单元链表的结点,检测所述线程是否访问非法内存空间,包括:

5.根据权利要求1所述的内存的访问检测方法,其特征在于,在基于关键词规则判断线程的状态之前,所述方法还包括;

6.根据权利要求5所述的内存的访问检测方法,其特征在于,对所述待解析源码文件进行解析得到目标源码的属性信息,包括:

7.根据权利要求1所述的内存的访问检测方法,其特征在于,若所述线程访问非法内存空间,则执行报警操作,包括:

8.一种内存的访问检测装置,其特征在于,包括:

9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一条可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的内存的访问检测方法对应的操作。

10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的内存的访问检测方法。


技术总结
本申请实施例提供了一种内存的访问检测方法及其装置、电子设备以及计算机存储介质。该方法包括:基于关键词规则判断线程所属状态;当线程的状态属于分离状态时,将线程名称、变量等信息写入相应的词法链表结点中。其中,词法单元链表基于代码的每个符号生成,用于记录符号信息以及上下文关联信息。每当有分离线程中调用其中的变量、函数等,通过遍历词法链表中的结点,基于结点属性检测线程是否访问非法内存空间;若线程访问非法内存空间,则执行报警操作。本发明实施例能够实现仅通过源码的静态检测阶段便能实现对多线程中访问非法内存空间检测的功能。

技术研发人员:谭山宇,李君,孟超,王圭,王金宝
受保护的技术使用者:零束科技有限公司
技术研发日:
技术公布日:2024/6/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1