CN114546751B - 内核空间调试方法及其装置、计算机设备、存储介质 - Google Patents

内核空间调试方法及其装置、计算机设备、存储介质 Download PDF

Info

Publication number
CN114546751B
CN114546751B CN202210436969.8A CN202210436969A CN114546751B CN 114546751 B CN114546751 B CN 114546751B CN 202210436969 A CN202210436969 A CN 202210436969A CN 114546751 B CN114546751 B CN 114546751B
Authority
CN
China
Prior art keywords
kernel
hardware
risc
debugging
instruction
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
Application number
CN202210436969.8A
Other languages
English (en)
Other versions
CN114546751A (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.)
Southern University of Science and Technology
Original Assignee
Southern University of Science and Technology
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 Southern University of Science and Technology filed Critical Southern University of Science and Technology
Priority to CN202210436969.8A priority Critical patent/CN114546751B/zh
Publication of CN114546751A publication Critical patent/CN114546751A/zh
Application granted granted Critical
Publication of CN114546751B publication Critical patent/CN114546751B/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种内核空间调试方法及其装置、计算机设备、存储介质,所述方法包括:接收RISC‑V硬件中断执行目标内核代码的信号,所述目标内核代码为操作系统内核的第一内核空间的内核代码;根据信号获取目标对象输入的调试指令;若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC‑V硬件的地址寄存器,将配置标识写入RISC‑V硬件的配置寄存器,以使RISC‑V硬件对操作系统内核的第二内核空间设置配置标识,根据RISC‑V的硬件特性实现对内核空间的调试,不需要额外的硬件设备就能对硬件相关的内核组件进行调试,且能够在不同的操作系统中使用。

Description

内核空间调试方法及其装置、计算机设备、存储介质
技术领域
本发明涉及存储技术领域,尤其涉及一种内核空间调试方法及其装置、计算机设备、存储介质。
背景技术
相关技术中,内核空间的调试方法包括硬件调试和软件调试,其中硬件调试需要额外的硬件设备完成调试,软件调试包括基于虚拟机监视器的调试和内置调试,基于虚拟机监视器的调试器通过在虚拟环境中运行内核,实现内核和实际硬件的分离,导致无法对实际硬件相关的内核组件进行调试,内置调试器通过内核提供的调试功能进行调试,无法在不同的操作系统间使用。
发明内容
本申请实施例的主要目的在于提出一种内核空间调试方法及其装置、计算机设备、存储介质,通过RISC-V的硬件特性实现对内核空间的调试,能够对硬件相关的内核组件进行调试,且能够在不同的操作系统中使用。
为实现上述目的,本申请实施例的第一方面提出了一种内核空间调试方法,应用于内核空间调试装置,所述内核空间调试装置内置于操作系统,所述操作系统包括操作系统内核和RISC-V硬件,所述方法包括:
接收所述RISC-V硬件中断执行目标内核代码的信号,所述目标内核代码为所述操作系统内核的第一内核空间的内核代码;
根据所述信号获取目标对象输入的调试指令;
若所述调试指令为设置保护指令,提取所述设置保护指令中的第一目标地址和配置标识,将所述第一目标地址写入所述RISC-V硬件的地址寄存器,将所述配置标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对所述操作系统内核的第二内核空间设置配置标识,所述配置标识包括读标识、写标识和执行标识中的至少一种,所述第二内核空间为所述第一目标地址对应的所述操作系统内核的内核空间,所述第一目标地址为四字节对齐。
在一些实施例,所述接收所述RISC-V硬件中断执行目标内核代码的信号,包括:
响应于所述操作系统内核的启动操作,获取初始地址和初始执行标识,将所述初始地址写入所述RISC-V硬件的地址寄存器,将所述初始执行标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对目标内核代码对应的第一内核空间设置初始执行标识,使所述RISC-V硬件执行所述目标内核代码时产生中断信号,所述初始地址为四字节对齐;
接收所述RISC-V硬件返回的所述中断信号。
在一些实施例,在所述根据所述信号获取目标对象输入的调试指令之后,所述方法还包括:
若所述调试指令为状态查询指令,将所述状态查询指令发送至所述RISC-V硬件,以使所述RISC-V硬件执行所述状态查询指令,返回所述操作系统内核的状态。
在一些实施例,在所述根据所述信号获取目标对象输入的调试指令之后,所述方法还包括:
若所述调试指令为单步执行指令,获取解码指令,根据所述解码指令得到第二目标地址,将所述第二目标地址写入所述RISC-V硬件的地址寄存器,将目标执行标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对所述操作系统内核的第三内核空间设置所述目标执行标识,所述第三内核空间为所述第二目标地址对应的所述操作系统内核的内核空间,所述第二目标地址为四字节对齐。
在一些实施例,所述根据所述解码指令得到第二目标地址,包括:
根据解码指令得到隐藏地址,所述隐藏地址为隐藏代码在所述操作系统内核的内核空间中的地址;
根据所述隐藏地址得到所述第二目标地址。
在一些实施例,在所述根据所述信号获取目标对象输入的调试指令之后,所述方法还包括:
若所述调试指令为继续执行指令,将所述继续执行指令发送至所述RISC-V硬件,以使所述RISC-V硬件根据所述继续执行指令继续执行所述操作系统内核的内核空间中的内核代码。
在一些实施例,所述方法还包括:
若不能获取目标对象输入的调试指令,则使所述RISC-V硬件继续中断执行所述操作系统内核的内核空间中的内核代码,直至能够获取所述目标对象输入的所述调试指令。
本申请实施例的第二方面提出了一种内核空间调试装置,所述内核空间调试装置内置于操作系统,所述操作系统包括操作系统内核和RISC-V硬件,所述装置包括:
信号接收模块,用于接收所述RISC-V硬件中断执行目标内核代码的信号,所述目标内核代码为所述操作系统内核的第一内核空间的内核代码;
指令获取模块,用于根据所述信号获取目标对象输入的调试指令;
保护设置模块,用于若所述调试指令为设置保护指令,提取所述设置保护指令中的第一目标地址和配置标识,将所述第一目标地址写入所述RISC-V硬件的地址寄存器,将所述配置标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对所述操作系统内核的第二内核空间设置配置标识,所述配置标识包括读标识、写标识和执行标识中的至少一种,所述第二内核空间为所述第一目标地址对应的所述操作系统内核的内核空间,所述第一目标地址为四字节对齐。
本申请实施例的第三方面提出了一种计算机设备,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行如本申请第一方面实施例任一项所述的方法。
本申请实施例的第四方面提出了一种存储介质,该存储介质为计算机可读存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本申请第一方面实施例任一项所述的方法。
本申请实施例提出的内核空间调试方法及其装置、计算机设备、存储介质,通过接收RISC-V硬件中断执行目标内核代码的信号,目标内核代码为操作系统内核的第一内核空间的内核代码,根据信号获取目标对象输入的调试指令,若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC-V硬件的地址寄存器,将配置标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第二内核空间设置配置标识,配置标识包括读标识、写标识和执行标识中的至少一种,第二内核空间为第一目标地址对应的操作系统内核的内核空间,第一目标地址为四字节对齐,根据RISC-V的硬件特性实现对内核空间的调试,不需要额外的硬件设备就能对硬件相关的内核组件进行调试,且能够在不同的操作系统中使用。
附图说明
图1是本申请实施例提供的内核空间调试方法的第一流程图;
图2是图1中步骤S110的具体方法的流程图;
图3是本申请另一实施例提供的内核空间调试方法的第二流程图;
图4是本申请实施例提供的内核空间调试装置的模块结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
相关技术中,内核空间的调试方法包括硬件调试和软件调试,其中硬件调试需要额外的硬件设备完成调试,但是出于安全考虑,硬件供应商不会公开调试接口,且硬件调试需要复杂的配置,软件调试包括基于虚拟机监视器的调试和内置调试,基于虚拟机监视器的调试器通过在虚拟环境中运行内核,实现内核和实际硬件的分离,导致无法对实际硬件相关的内核组件进行调试,内置调试器通过内核提供的调试功能进行调试,无法在不同的操作系统间使用。此外,内置调试器通过替换内核指令实现软件断点,会破坏内核的完整性。
基于此,本申请实施例的主要目的在于提出一种内核空间调试方法,通过接收RISC-V硬件中断执行目标内核代码的信号,目标内核代码为操作系统内核的第一内核空间的内核代码,根据信号获取目标对象输入的调试指令,若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC-V硬件的地址寄存器,将配置标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第二内核空间设置配置标识,配置标识包括读标识、写标识和执行标识中的至少一种,第二内核空间为第一目标地址对应的操作系统内核的内核空间,第一目标地址为四字节对齐,根据RISC-V的硬件特性对操作系统内核的第二内核空间设置配置标识,实现软件断点,保证了内核的完整性,且不需要额外的硬件设备就能对硬件相关的内核组件进行调试,能够在不同的操作系统中使用。
本申请实施例提供的内核空间调试方法及其装置、计算机设备、存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的内核空间调试方法。
参照图1,根据本申请实施例第一方面实施例的内核空间调试方法,应用于内核空间调试装置,内核空间调试装置内置于操作系统,操作系统包括操作系统内核和RISC-V硬件,内核空间调试方法包括但不限于步骤S110至步骤S130。
S110,接收RISC-V硬件中断执行目标内核代码的信号,目标内核代码为操作系统内核的第一内核空间的内核代码;
S120,根据信号获取目标对象输入的调试指令;
S130,若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC-V硬件的地址寄存器,将配置标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第二内核空间设置配置标识。
在步骤S110中,RISC-V硬件在执行目标内核代码时产生中断信号,中断执行目标内核代码,并将中断现场进行保存,即把寄存器的值保存在中断执行的任务栈中。
在步骤S120中,根据信号将操作系统内核对内核空间的控制权切换为内核空间调试装置,使内核空间调试装置能够执行调试行为,内核空间调试装置可以通过串口或者网络接口向调试客户端的目标对象发送提示信息,该提示信息用于提示目标对象输入调试指令。内核空间调试装置接收目标对象输入的调试指令,其中目标对象为调试客户端对应的用户。若不能获取目标对象输入的调试指令,则使RISC-V硬件继续中断执行操作系统内核的内核空间中的内核代码,直至能够获取目标对象输入的调试指令。若RISC-V硬件中断执行的内核代码为该目标内核代码,当无法获取目标对象输入的调试指令,即目标对象没有输入调试指令,则使RISC-V硬件继续中断执行目标内核代码,直至能够获取目标对象输入的调试指令。
在步骤S130中,通过RISC-V硬件对操作系统内核的第二内核空间设置配置标识,实现第二内核空间不同区段的权限保护,其中配置标识包括读标识、写标识和执行标识中的至少一种,第二内核空间为第一目标地址对应的操作系统内核的内核空间。由于RISC-V的标准指令长度为四字节,指令地址为四字节对齐,所以第一目标地址为四字节对齐。若设置保护指令中的第一目标地址为0x1000-0x1004,配置标识为执行标识,将0x1000-0x1004写入RISC-V硬件的执行保护指向地址寄存器,并向对应的配置寄存器中写入执行标识,即向配置寄存器中写入NX,以阻止对对应0x1000-0x1004的内核代码的执行,其中NX表示不可执行;若设置保护指令中的第一目标地址为0x1000-0x1004,配置标识为读标识,将0x1000-0x1004写入RISC-V硬件的读保护指向地址寄存器,并向对应的配置寄存器中写入读标识,即向配置寄存器中写入NR,以阻止对对应0x1000-0x1004的内核代码的读取,其中NR表示不可读;若设置保护指令中的第一目标地址为0x1000-0x1004,配置标识为写标识,0x1000-0x1004写入RISC-V硬件的写保护指向地址寄存器,并向对应的配置寄存器中写入写标识,即向配置寄存器中写入NW,以阻止对0x1000-0x1004写入数据,其中NW表示不可写。
若调试指令为状态查询指令,将状态查询指令发送至RISC-V硬件,以使RISC-V硬件执行状态查询指令,返回操作系统内核的状态,其中系统内核的状态包括内存存储的值、寄存器的值、RISC-V硬件所处的权限级别、当前正在执行的指令等。需要说明的是,RISC-V硬件的权限级别包括用户模式、监视者模式和机器模式,在不同的级别下,RISC-V允许执行不同类型的指令,用户模式下只能执行非特权指令,监视者模式下可以执行部分特权指令,机器模式下可以执行最高权限级别的特权指令。内核空间调试装置处于机器模式下,可以通过RISC-V执行最高权限级别,例如查看操作系统内核的内存、设置内核代码的执行权限等。
若调试指令为单步执行指令,则对内核空间的内核代码进行单步调试,但由于RISC-V也提供了二字节的压缩指令,地址对齐的差异会导致忽略部分内核代码。例如内核空间0x1000-0x1008对应的内核代码为“c.li a0 0x12 addi a0 0x1 c.jr a0”,其中0x1000-0x1002存储的内核代码为c.li a0 0x12,0x1002-0x1006存储的内核代码为addia0 0x1,0x1006-0x1008存储的内核代码为c.jr a0,若当前待执行的内核代码为c.li a00x12,为了实现单步执行,则0x1000-0x1004对应的内核空间会设置有执行标识,为了让当前待执行的内核代码执行,则需要给0x1004-0x1008对应的内核空间设置执行标识,同样地为了让内核代码addi a0 0x1执行,则需要0x1008-0x1002对应的内核空间设置执行标识,执行c.jr a0时,会丢失c.jr a0需要跳转的内核代码的地址,无法对需要跳转的内核代码进行单步调试,导致c.jr a0成为隐藏代码。
为了解决隐藏代码的问题,获取解码指令,根据解码指令得到第二目标地址,将第二目标地址写入RISC-V硬件的地址寄存器,将目标执行标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第三内核空间设置目标执行标识,其中第三内核空间为第二目标地址对应的操作系统内核的内核空间,第二目标地址为四字节对齐。根据解码指令得到第二目标地址的步骤为:根据解码指令得到隐藏地址,根据隐藏地址得到第二目标地址,其中隐藏地址为隐藏代码在操作系统内核的内核空间中的地址。需要说明的是,隐藏代码为命令流的跳转指令,例如if语句、while语句、for语句等。通过解码指令扫描内核空间代码,预测隐藏代码的位置,即隐藏地址,根据隐藏地址得到需跳转执行的内核代码的第二目标地址,从而对第二目标地址对应的第三内核空间设置执行标识以进行单步调试。
若调试指令为继续执行指令,将继续执行指令发送至RISC-V硬件,以使RISC-V硬件根据继续执行指令从内核代码中断的位置继续执行操作系统内核的内核空间中的内核代码。若当前内核代码中断的位置为上述目标内核代码,当调试指令为继续执行指令,RISC-V硬件根据继续执行指令从该目标内核代码所在的位置开始继续执行操作系统内核的内核空间中的内核代码。
通过设置保护指令、状态查询指令、单步执行指令和继续执行指令四种不同类型的调试指令,实现对内核空间的调试。
在一些实施例,如图2所示,步骤S110具体包括:
S210,响应于操作系统内核的启动操作,获取初始地址和初始执行标识,将初始地址写入RISC-V硬件的地址寄存器,将初始执行标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对目标内核代码对应的第一内核空间设置初始执行标识,使RISC-V硬件执行目标内核代码时产生中断信号;
S220,接收RISC-V硬件返回的中断信号。
在步骤S210中,操作系统内核启动时,固件触发内核空间调试装置对内核代码进行初始保护,并停止操作系统内核的执行流程,将操作系统内核对内核空间代码的控制权切换至内核空间调试装置。进行初始保护的步骤为:获取初始地址和初始执行标识,将初始地址写入RISC-V硬件的执行保护指向地址寄存器,将初始执行标识写入RISC-V硬件的配置寄存器,RISC-V硬件对目标内核代码对应的第一内核空间设置初始执行标识,当执行目标内核代码时产生中断信号,其中初始地址为四字节对齐。
参照图3,本申请另一实施例还提供一种内核空间调试方法,该内核空间调试方法包括但不限于步骤S3010至S3120。
S3010,设置初始保护;
S3020,中断操作系统内核的内核空间中内核代码的执行流程,等待用户输入调试指令;
S3030,判断用户是否输入调试指令,若判断结果为是,则执行步骤S3040;若判断结果为否,则返回执行步骤S3020;
S3040,判断调试指令是否为状态查询指令,若判断结果为是,则执行步骤S3050;若判断结果为否,则执行步骤S3020;
S3050,返回操作系统内核的状态,并返回执行步骤S3020;
S3060,判断调试指令是否为设置保护指令,若判断结果为是,则执行步骤S3070;若判断结果为否,则执行步骤S3080;
S3070,对操作系统内核的内核空间设置保护,并返回执行步骤S3020;
S3080,判断调试指令是否为单步执行指令,若判断结果为是,则执行步骤S3090;若判断结果为否,则执行步骤S3100;
S3090,单步执行内核空间的内核代码,并返回执行步骤S3020;
S3100,判断调试指令是否为继续执行指令,若判断结果为是,则执行步骤S3110;若判断结果为否,则返回执行步骤S3020;
S3110,判断继续执行的过程中是否触发保护,若判断结果为是,则返回执行步骤S3020;若判断结果为否,则执行步骤S3120;
S3120,继续执行操作系统内核的内核空间中的内核代码。
本申请实施例提出的内核空间调试方法,通过接收RISC-V硬件中断执行目标内核代码的信号,目标内核代码为操作系统内核的第一内核空间的内核代码,根据信号获取目标对象输入的调试指令,若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC-V硬件的地址寄存器,将配置标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第二内核空间设置配置标识,配置标识包括读标识、写标识和执行标识中的至少一种,第二内核空间为第一目标地址对应的操作系统内核的内核空间,第一目标地址为四字节对齐,根据RISC-V的硬件特性实现对内核空间的调试,不需要额外的硬件设备就能对硬件相关的内核组件进行调试,且能够在不同的操作系统中使用。
本申请实施例还提供一种内核空间调试装置,该内核空间调试装置内置于操作系统,操作系统包括操作系统内核和RISC-V硬件,如图4所示,可以实现上述内核空间调试方法,该装置包括信号接收模块410、指令获取模块420和保护设置模块430。其中信号接收模块410用于接收RISC-V硬件中断执行目标内核代码的信号,目标内核代码为操作系统内核的第一内核空间的内核代码;指令获取模块420用于根据信号获取目标对象输入的调试指令;保护设置模块430用于若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC-V硬件的地址寄存器,将配置标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第二内核空间设置配置标识,配置标识包括读标识、写标识和执行标识中的至少一种,第二内核空间为第一目标地址对应的操作系统内核的内核空间,第一目标地址为四字节对齐。
本申请实施例提出的内核空间调试装置,通过接收RISC-V硬件中断执行目标内核代码的信号,目标内核代码为操作系统内核的第一内核空间的内核代码,根据信号获取目标对象输入的调试指令,若调试指令为设置保护指令,提取设置保护指令中的第一目标地址和配置标识,将第一目标地址写入RISC-V硬件的地址寄存器,将配置标识写入RISC-V硬件的配置寄存器,以使RISC-V硬件对操作系统内核的第二内核空间设置配置标识,配置标识包括读标识、写标识和执行标识中的至少一种,第二内核空间为第一目标地址对应的操作系统内核的内核空间,第一目标地址为四字节对齐,根据RISC-V的硬件特性实现对内核空间的调试,不需要额外的硬件设备就能对硬件相关的内核组件进行调试,且能够在不同的操作系统中使用。
本申请实施例的内核空间调试装置用于执行上述实施例中的内核空间调试方法,其具体处理过程与上述实施例中的内核空间调试方法相同,此处不再一一赘述。
本申请实施例还提供了一种计算机设备,包括:
至少一个处理器,以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现如本申请第一方面实施例中任一项的方法。
该计算机设备包括:处理器、存储器、输入/输出接口、通信接口和总线。
处理器,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器,可以采用ROM(Read Only Memory,只读存储器)、静态存储设备、动态存储设备或者RAM(Random Access Memory,随机存取存储器)等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行本申请实施例的内核空间调试方法;
输入/输出接口,用于实现信息输入及输出;
通信接口,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和
总线,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息;
其中处理器、存储器、输入/输出接口和通信接口通过总线实现彼此之间在设备内部的通信连接。
本申请实施例还提供一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行本申请实施例的内核空间调试方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1至图3中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

Claims (10)

1.内核空间调试方法,应用于内核空间调试装置,所述内核空间调试装置内置于操作系统,所述操作系统包括操作系统内核和RISC-V硬件,其特征在于,所述方法包括:
接收所述RISC-V硬件中断执行目标内核代码的信号,所述目标内核代码为所述操作系统内核的第一内核空间的内核代码;
根据所述信号获取目标对象输入的调试指令;
若所述调试指令为设置保护指令,提取所述设置保护指令中的第一目标地址和配置标识,将所述第一目标地址写入所述RISC-V硬件的地址寄存器,将所述配置标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对所述操作系统内核的第二内核空间设置配置标识,所述配置标识包括读标识、写标识和执行标识中的至少一种,所述第二内核空间为所述第一目标地址对应的所述操作系统内核的内核空间,所述第一目标地址为四字节对齐。
2.根据权利要求1所述的内核空间调试方法,其特征在于,所述接收所述RISC-V硬件中断执行目标内核代码的信号,包括:
响应于所述操作系统内核的启动操作,获取初始地址和初始执行标识,将所述初始地址写入所述RISC-V硬件的地址寄存器,将所述初始执行标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对目标内核代码对应的第一内核空间设置初始执行标识,使所述RISC-V硬件执行所述目标内核代码时产生中断信号,所述初始地址为四字节对齐;
接收所述RISC-V硬件返回的所述中断信号。
3.根据权利要求1所述的内核空间调试方法,其特征在于,在所述根据所述信号获取目标对象输入的调试指令之后,所述方法还包括:
若所述调试指令为状态查询指令,将所述状态查询指令发送至所述RISC-V硬件,以使所述RISC-V硬件执行所述状态查询指令,返回所述操作系统内核的状态。
4.根据权利要求1所述的内核空间调试方法,其特征在于,在所述根据所述信号获取目标对象输入的调试指令之后,所述方法还包括:
若所述调试指令为单步执行指令,获取解码指令,根据所述解码指令得到第二目标地址,将所述第二目标地址写入所述RISC-V硬件的地址寄存器,将目标执行标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对所述操作系统内核的第三内核空间设置所述目标执行标识,所述第三内核空间为所述第二目标地址对应的所述操作系统内核的内核空间,所述第二目标地址为四字节对齐。
5.根据权利要求4所述的内核空间调试方法,其特征在于,所述根据所述解码指令得到第二目标地址,包括:
根据解码指令得到隐藏地址,所述隐藏地址为隐藏代码在所述操作系统内核的内核空间中的地址;
根据所述隐藏地址得到所述第二目标地址。
6.根据权利要求1所述的内核空间调试方法,其特征在于,在所述根据所述信号获取目标对象输入的调试指令之后,所述方法还包括:
若所述调试指令为继续执行指令,将所述继续执行指令发送至所述RISC-V硬件,以使所述RISC-V硬件根据所述继续执行指令继续执行所述操作系统内核的内核空间中的内核代码。
7.根据权利要求1至6任一项所述的内核空间调试方法,其特征在于,所述方法还包括:
若不能获取目标对象输入的调试指令,则使所述RISC-V硬件继续中断执行所述操作系统内核的内核空间中的内核代码,直至能够获取所述目标对象输入的所述调试指令。
8.内核空间调试装置,所述内核空间调试装置内置于操作系统,所述操作系统包括操作系统内核和RISC-V硬件,其特征在于,所述装置包括:
信号接收模块,用于接收所述RISC-V硬件中断执行目标内核代码的信号,所述目标内核代码为所述操作系统内核的第一内核空间的内核代码;
指令获取模块,用于根据所述信号获取目标对象输入的调试指令;
保护设置模块,用于若所述调试指令为设置保护指令,提取所述设置保护指令中的第一目标地址和配置标识,将所述第一目标地址写入所述RISC-V硬件的地址寄存器,将所述配置标识写入所述RISC-V硬件的配置寄存器,以使所述RISC-V硬件对所述操作系统内核的第二内核空间设置配置标识,所述配置标识包括读标识、写标识和执行标识中的至少一种,所述第二内核空间为所述第一目标地址对应的所述操作系统内核的内核空间,所述第一目标地址为四字节对齐。
9.计算机设备,其特征在于,所述计算机设备包括存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行:
如权利要求1至7中任一项所述的方法。
10.存储介质,所述存储介质为计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行:
如权利要求1至7中任一项所述的方法。
CN202210436969.8A 2022-04-25 2022-04-25 内核空间调试方法及其装置、计算机设备、存储介质 Active CN114546751B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210436969.8A CN114546751B (zh) 2022-04-25 2022-04-25 内核空间调试方法及其装置、计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210436969.8A CN114546751B (zh) 2022-04-25 2022-04-25 内核空间调试方法及其装置、计算机设备、存储介质

Publications (2)

Publication Number Publication Date
CN114546751A CN114546751A (zh) 2022-05-27
CN114546751B true CN114546751B (zh) 2022-07-26

Family

ID=81667062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210436969.8A Active CN114546751B (zh) 2022-04-25 2022-04-25 内核空间调试方法及其装置、计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN114546751B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726135A (zh) * 2019-01-25 2019-05-07 杭州嘉楠耘智信息科技有限公司 一种多核调试方法、装置及计算机可读存储介质
CN110851388A (zh) * 2019-11-08 2020-02-28 南京沁恒微电子股份有限公司 针对risc-v处理器的调试系统及调试信号传输方法
CN111881636A (zh) * 2020-07-07 2020-11-03 广芯微电子(广州)股份有限公司 一种基于risc-v芯片的仿真调试方法及装置
CN113946481A (zh) * 2021-12-20 2022-01-18 南京瑞斯科微控制器研究院有限公司 Risc-v内核mcu调试的快速下载程序方法及调试器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023342B2 (en) * 2018-11-30 2021-06-01 Western Digital Technologies, Inc. Cache diagnostic techniques

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726135A (zh) * 2019-01-25 2019-05-07 杭州嘉楠耘智信息科技有限公司 一种多核调试方法、装置及计算机可读存储介质
CN110851388A (zh) * 2019-11-08 2020-02-28 南京沁恒微电子股份有限公司 针对risc-v处理器的调试系统及调试信号传输方法
CN111881636A (zh) * 2020-07-07 2020-11-03 广芯微电子(广州)股份有限公司 一种基于risc-v芯片的仿真调试方法及装置
CN113946481A (zh) * 2021-12-20 2022-01-18 南京瑞斯科微控制器研究院有限公司 Risc-v内核mcu调试的快速下载程序方法及调试器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RISC-V:改变SoC器件的开发;Ted Marena;《中国电子商情(基础电子)》;20171208(第12期);34-35 *
UltraSoC为嵌入式调试和分析环境添加SEGGER的J-Link调试探针;无;《单片机与嵌入式系统应用》;20181001;第18卷(第10期);1 *

Also Published As

Publication number Publication date
CN114546751A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
CN105843741B (zh) 应用程序的信息处理方法和装置
JP5905904B2 (ja) デバッグ例外生成の制御
WO2015072689A1 (ko) 안티디버깅 방법
US10984096B2 (en) Systems, methods, and apparatus for detecting control flow attacks
CN105630659A (zh) 应用崩溃日志的获取方法及装置
CN108021791B (zh) 数据保护方法及装置
CN107908444B (zh) 终端应用的挂钩方法及装置
US20110161956A1 (en) Heap dump object identification in a heap dump analysis tool
CN103210381A (zh) 访问方法以及多核处理器系统
CN104281805A (zh) 安全保护方法和处理器
CN106997313B (zh) 一种应用程序的信号处理方法、系统及终端设备
CN113467981A (zh) 异常处理的方法和装置
CN111538665A (zh) 程序的测试方法和装置、存储介质、电子装置
US20240289257A1 (en) Method for testing a computer program
CN114546751B (zh) 内核空间调试方法及其装置、计算机设备、存储介质
CN111639312B (zh) 反调试方法、装置、存储介质及电子装置
CN109446755B (zh) 内核钩子函数保护方法、装置、设备以及存储介质
US20180226136A1 (en) System management mode test operations
CN108156048A (zh) 一种实现在复杂场景中获取应用崩溃信息的方法和装置
CN115878363A (zh) 用于解析处理器异常的方法、装置及计算机可读存储介质
CN112052165B (zh) 一种检测目标函数被调试的方法、系统及存储介质
CN114510429A (zh) 一种基于动态符号执行的调试方法、系统和介质
CN113646763B (zh) shellcode的检测方法及装置
KR20190076217A (ko) 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치 및 방법
CN111488282A (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