CN113760767B - 操作系统的调试方法、装置、电子设备及计算机可读存储介质 - Google Patents
操作系统的调试方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113760767B CN113760767B CN202111064067.8A CN202111064067A CN113760767B CN 113760767 B CN113760767 B CN 113760767B CN 202111064067 A CN202111064067 A CN 202111064067A CN 113760767 B CN113760767 B CN 113760767B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- log
- debugging
- interrupt
- console
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000006870 function Effects 0.000 claims abstract description 144
- 238000012545 processing Methods 0.000 claims abstract description 79
- 230000001960 triggered effect Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 10
- 238000007639 printing Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种操作系统的调试方法、装置、电子设备及计算机可读存储介质,涉及软件调试领域。该方法包括:接收虚拟机输出的日志,将日志输出至控制台中;若接收到调试命令,则根据调试命令将控制台的使用权限切换至虚拟机;若确定控制台的使用权限已切换至虚拟机,则将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,以指示虚拟机调用中断对应的中断处理函数以及预先修改后的接收函数,在控制台中根据日志以及调试命令调试操作系统。本申请实施例通过Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,并根据调试命令将控制台的使用权限切换至虚拟机,使得每个虚拟机都能使用控制台调试,提高调试的效率。
Description
技术领域
本申请涉及软件调试技术领域,具体而言,本申请涉及一种操作系统的调试方法、装置、电子设备及计算机可读存储介质。
背景技术
日志记录了操作系统中硬件、软件和系统问题的信息,是操作系统管理的重要组成部分,用户可以通过日志进行错误排查,还能完成跟踪调试、程序状态记录、崩溃数据恢复等工作。在虚拟化环境下的多域系统中,每个域运行一个操作系统,在调试时需要输出每个操作系统的日志以对每个操作系统进行调试。
现有技术中输出日志时一般使用两种方法,方法一在硬件上预留多个串口或者其他硬件接口,每个接口对应一个域,独立输出每个域的日志。方法二是只有一个串口,将这个串口的驱动放置在一个特殊的域中,其他的域与特殊的域之间进行通信,特殊的域通过串口输出所有的域的日志。
方法一需要在硬件上预留多个串口,而实际中往往由于硬件接口的数量有限、电路板的面积限制等原因而无法满足需求;而方法二依赖特殊的域输出所有的域的日志,某些域的日志不能及时输出,或者特殊的域发生故障,导致整个系统所有域的日志都无法输出的问题。
发明内容
本申请提供了一种操作系统的调试方法、装置、电子设备及计算机可读存储介质,可以解决上述问题。所述技术方案如下:
根据本申请的一个方面,提供了一种操作系统的调试方法,应用于虚拟机监视器,该方法包括:
接收虚拟机输出的日志,将日志输出至控制台中,日志为虚拟机中运行的操作系统的日志;
若接收到调试命令,则根据调试命令将控制台的使用权限切换至虚拟机;
若确定控制台的使用权限已切换至虚拟机,则将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,以指示虚拟机调用中断对应的中断处理函数以及预先修改后的接收函数,在控制台中根据日志以及调试命令调试操作系统。
在一种可能的实现方式中,将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,之前还包括:
为虚拟机分配内存、配置中断以及中断对应的中断处理函数、以及修改虚拟机的接收函数;
中断用于被触发时调用中断处理函数,中断处理函数用于被调用时取出内存中的调试命令,并将调试命令发送至虚拟机的接收函数;
修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
在另一种可能的实现方式中,接收虚拟机输出的日志,之前还包括:
确定虚拟机输出日志时访问的串口寄存器的物理地址,将物理地址的映射设置为空;
接收虚拟机输出的日志包括:
若接收到虚拟机发送的异常信息,则接收虚拟机输出的日志,异常信息为虚拟机访问串口寄存器的物理地址输出日志时,物理地址为空时产生的。
在又一种可能的实现方式中,将日志通过串口输出至控制台中,包括:
将日志存入预先配置的缓存区中,若确定存入的日志中存在预设字符,则从缓冲区取出已存入至缓存区中的所有日志,并清空缓存区;
将取出的所有日志通过串口输出并打印至控制台中,以使得所有日志在控制台中显示。
根据本申请的另一个方面,提供了一种操作系统的调试方法,应用于虚拟机,该方法包括:
生成日志,日志为虚拟机中运行的操作系统的日志;
将日志发送给虚拟机监视器,以使得虚拟机监视器将日志输出至控制台中;
响应于虚拟机监视器触发的预先配置的中断,调用中断对应的中断处理函数以及预先修改的接收函数,在控制台中根据日志以及调试命令调试操作系统。
在一个可能的实现方式中,调用中断对应的中断处理函数以及预先修改的接收函数,包括:
调用中断对应的中断处理函数,从预先分配的内存中取出调试命令;
调用预先修改后的接收函数接收中断处理函数被调用时取出的调试命令;
根据调试命令以及日志在控制台中调试操作系统。
在另一个可能的实现方式中,响应于虚拟机监视器触发的预先配置的中断,调用中断对应的中断处理函数以及预先修改的接收函数,之前还包括:
接受虚拟机监视器分配的内存、配置的中断以及中断对应的中断处理函数,以及修改后的接收函数;
中断用于被触发时调用中断处理函数,中断处理函数用于取出内存中的调试命令,并将调试命令发送至虚拟机的接收函数;
修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
根据本申请实施例的另一个方面,提供了一种操作系统的调试装置,应用于虚拟机监视器,该装置包括:
接收模块,用于接收虚拟机输出的日志,日志为虚拟机中运行的操作系统的日志;
切换模块,用于若接收到调试命令,则根据调试命令将控制台的使用权限切换至虚拟机;
指示模块,用于若确定控制台的使用权限已切换至虚拟机,则将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,以指示虚拟机调用中断对应的中断处理函数以及预先修改后的接收函数,在控制台中根据日志以及调试命令调试操作系统。
根据本申请的另一个方面,提供了一种操作系统的调试装置,应用于虚拟机,该装置包括:
生成模块,用于生成日志,日志为虚拟机中运行的操作系统的日志;
发送模块,用于将日志发送给虚拟机监视器,以使得虚拟机监视器将日志输出至控制台中;
调试模块,用于响应于虚拟机监视器触发的预先配置的中断,调用中断对应的中断处理函数以及预先修改的接收函数,在控制台中根据日志以及调试命令调试操作系统。
根据本申请的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述操作系统的调试方法的步骤。
根据本申请的再一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述操作系统的调试方法的步骤。
本申请提供的技术方案带来的有益效果是:通过Hypervisor接收所有虚拟机输出的日志,由Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,用户输入的调试命令也由Hypervisor接收并进行解析,根据调试命令将控制台的使用权限切换至虚拟机,使得每个虚拟机都能使用控制台调试,提高调试的效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种操作系统的调试方法流程示意图;
图2为本申请实施例提供的一种确定控制台的使用权限的流程示意图;
图3为本申请实施例提供的一种VM_N初始化的流程示意图;
图4为本申请实施例提供的一种Hypervisor初始化的流程示意图;
图5为本申请实施例提供的一种数据传输流程示意图;
图6为本申请实施例提供的另一种操作系统的流程示意图;
图7为本申请实施例提供的一种VM_N使用控制台的流程示意图;
图8为本申请实施例提供的一种操作系统的调试装置的结构示意图;
图9为本申请实施例提供的另一种操作系统的调试装置的结构示意图;
图10为本申请实施例提供的一种实现操作系统的调试方法的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
Hypervisor,又称虚拟机监视器(virtual machine monitor,缩写为VMM),用来创建和管理虚拟机的软件。Hypervisor是一种运行在物理硬件层和操作系统之间的中间软件层,可以允许多个操作系统和/或应用共享硬件,是一种在虚拟环境中的“元”操作系统。Hypervisor可以访问电子设备上包括磁盘和内存在内的所有硬件资源。Hypervisor不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当电子设备启动并执行Hypervisor时,它会加载所有虚拟机同时分配给每一台虚拟机适量的内存,CPU,网络和磁盘等。
虚拟机(Virtual Machine,缩写为VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个隔离环境中的完整计算机系统。
中断是指在CPU运行期间,被CPU内部或外部事件所打断、暂停当前程序的执行而转去执行一段特定的处理内部或外部事件程序的过程。
串行接口(Serial Interface),简称串口,是采用串行通信方式的扩展接口,串行通信是指数据一位一位的顺序传送。
在虚拟化环境下的多域系统中,每个域对应一个虚拟机,虚拟机中运行操作系统,多域系统在运行时,每个域内的操作系统都需要进行调试,可以利用日志进行调试,一般通过串口将日志输出到控制台进行调试。
目前输出日志进行调试的方法一般有两种,一种方法是在硬件上预留多个串口,每个串口对应一个域,分别独立输出每个域中操作系统的日志;第二种方法是预留一个串口,将这个串口的驱动放置在一个特殊的域中,其他的域与该特殊的域通信,由特殊的域通过串口输出所有的域中操作系统的日志。
而上述两种方法都存在一定缺陷,如方法一需要在硬件上预留多个串口,但实际中由于电路板面积的限制,在硬件上接口的数量是有限的,很可能无法满足日志的输出需求;方法二依赖特殊的域来输出所有的域中操作系统的日志,某些域的日志可能无法及时输出,或者当特殊的域发生故障时,导致整个系统所有的域中操作系统的日志都无法输出。
本申请提供的操作系统的调试方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种操作系统的调试方法,应用于虚拟机监视器,如图1所示,该方法包括:
S101、接收虚拟机输出的日志,将日志输出至控制台中,日志为虚拟机中运行的操作系统的日志。
虚拟机中运行的操作系统,一般会输出日志,日志记录了操作系统中所有的硬件、软件和系统问题等内容,一般每一行日志记载着日期、时间、使用者以及动作等相关操作的描述,因此可以通过日志来分析操作系统中的各种行为,根据日志对操作系统进行调试以满足用户的需求。
本申请实施例中利用Hypervisor来接收所有虚拟机中运行的操作系统的日志,即虚拟机没有访问串口输出日志的权限,由Hypervisor接管串口的使用权限,当虚拟机要输出日志时,由Hypervisor接收日志,通过串口输出日志,应当注意的是,本申请实施例是以一个串口为例进行描述的。
串口通常有着数据传输和搭建控制台的作用,通过串口进行的串口通讯分为同步通讯和异步通讯,通常使用的是异步通讯,在通讯时,需要设置约定好的数据帧的格式,如波特率、数据位、停止位、奇偶校验位等。基于串口也可以搭建控制台,控制台主要用于打印数据,通过控制台可以显示通过串口输出的数据,可以编程实现相关的代码,本申请实施例不作具体限定。
本申请实施例中Hypervisor在接收到日志后,可以将接收到的日志通过串口输出并打印在控制台中显示,以便于用户阅览日志,确定是否需要调试,应当理解的是,在日志的字符打印之前可以插入对应的虚拟机的标识,如VM_1,表示是由虚拟机VM_1输出的日志。
S102、若接收到调试命令,则根据调试命令将控制台的使用权限切换至虚拟机。
当需要使用控制台进行调试时,Hypervisor接收到虚拟机输出的日志后,将日志通过串口输出到控制台中以便后续的调试。调试命令是由用户输入的,例如通过鼠标、键盘等输入的用于调试的命令,具体的调试命令根据用户的需求输入,本申请实施例不作具体限定。同样的,调试命令也由Hypervisor接收,然后将调试命令输出并显示到控制台中实现调试。
本申请实施例中控制台的使用权限可以是Hypervisor预先默认拥有的,当接收到调试命令后,可以根据调试命令进一步确定控制台的使用权限。
S103、若确定控制台的使用权限已切换至虚拟机,则将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,以指示虚拟机调用中断对应的中断处理函数以及预先修改后的接收函数,在控制台中根据日志以及调试命令调试操作系统。
不同的调试命令在控制台执行时可能需要不同的执行主体来执行,具体地,Hypervisor在接收到调试命令后,对调试命令进行解析,确定执行该调试命令的执行主体,若确定由虚拟机执行,则将控制台的使用权限切换至虚拟机,即虚拟机拥有控制台的使用权限,在控制台中日志和调试命令对操作系统进行调试。当然调试命令也可以是由Hypervisor执行,可以根据用户的需求确定,具体如何调试根据用户输入的调试命令确定,本申请实施例不作具体限定。
当控制台的使用权限切换至虚拟机时,Hypervisor将调试命令存入预先配置的内存中,对于每一个虚拟机都会预先配置一个内存作为缓冲区,以存放调试命令,然后可以给虚拟机触发预先配置的中断,虚拟机响应于预先配置的中断,而虚拟机响应于中断,调用中断对应的中断处理函数以及预先修改后的接收函数,然后在控制台中根据日志和调试命令可以对操作系统进行调试,具体的过程在后续的实施例中进行描述。
本申请实施例通过Hypervisor接收所有虚拟机输出的日志,由Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,用户输入的调试命令也由Hypervisor接收并进行解析,根据调试命令将控制台的使用权限切换至虚拟机,使得每个虚拟机都能使用控制台调试,提高调试的效率。
图2为本申请实施例提供的一种确定控制台的使用权限的流程示意图,Hypervisor对调试命令进行解析,确定执行调试命令的执行主体为虚拟机VM_N,即虚拟机VM_N拥有控制台的使用权限,将控制台的使用权限切换至虚拟机VM_N,并标记以后控制台由虚拟机VM_N使用。
若已将控制台的使用权限切换至虚拟机,则将调试命令存入预先分配的内存中,然后给虚拟机触发预先给该虚拟机配置的中断,以使得虚拟机调用该中断对应的中断处理函数从预先分配的内存中取出调试命令,调用预先修改后的接收函数接收中断处理函数取出的调试命令。
本申请实施例中还提供了一种可能的实现方式,将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,之前还包括:
为虚拟机分配内存、配置中断以及中断对应的中断处理函数、以及修改虚拟机的接收函数;
中断用于被触发时调用中断处理函数,中断处理函数用于被调用时取出内存中的调试命令,并将调试命令发送至虚拟机的接收函数;
修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
在任意一个虚拟机启动之前,先对虚拟机进行初始化,包括为虚拟机分配内存、配置中断以及中断对应的中断处理函数,以及修改虚拟机的接收函数。
图3为本申请实施例提供的VM_N初始化的流程示意图,具体地,为虚拟机分配的内存是该虚拟机与Hypervisor共享的内存,例如命名为shmem_N(N为正整数)分别对应于每一个虚拟机VM_N(N为正整数),Hypervisor可以向这一共享的内存中存入调试命令,而虚拟机可以从这一共享的内存中取出调试命令。
同样的,为虚拟机VM_N配置中断以及中断对应的中断处理函数,例如注册中断号为irq_N(N为正整数)的中断配置给虚拟机VM_N,irq_N对应的中断处理函数为irq_handler_N(N为正整数),中断用于被触发时调用该中断对应的中断处理函数,而中断处理函数用于被调用时从上述内存shmem_N中取出调试命令,并将调试命令发送至虚拟机的接收函数。
现有技术中当控制台中输入了调试命令,通过串口输出给虚拟机时,串口接收到调试命令会给虚拟机触发一个接收数据中断,来让虚拟机调用接收函数接收调试命令,而本申请实施例中利用Hypervisor接收通过串口输入的调试命令,对虚拟机的接收函数进行修改,使得接收函数接收预先配置的中断对应的中断处理函数发送的消息时,才可以接收到调试命令,即修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
本申请实施例通过预先为每个虚拟机分配预设的内存、配置中断以及中断对应的中断处理函数,并修改虚拟机的接收函数,使得虚拟机与Hypervisor进行交互,保证虚拟机在Hypervisor的控制下获取调试命令,提高了调试过程中的安全性。
本申请实施例中提供了一种可能的实现方式,接收虚拟机输出的日志,之前还包括:
确定虚拟机输出日志时访问的串口寄存器的物理地址,将物理地址的映射设置为空。
图4为本申请实施例提供的一种Hypervisor初始化的流程示意图,虚拟机在通过串口输出日志时,需要访问串口的串口寄存器。在虚拟化环境中,虚拟机访问地址一般需要经过二级映射过程,即从虚拟机虚拟地址到中间物理地址IPA的一级映射,从中间物理地址IPA到真实物理地址PA的二级映射。
本申请实施例中采用Hypervisor接管串口的使用权限,因此,在Hypervisor初始化时,将虚拟机访问的串口寄存器的物理地址时的二级映射设置为空,使得虚拟机在访问串口的串口寄存器时,会发出异常信息。
接收虚拟机输出的日志包括:
若接收到虚拟机发送的异常信息,则接收虚拟机输出的日志,异常信息为虚拟机访问串口寄存器的物理地址输出日志时,物理地址为空时产生的。
本申请实施例将虚拟机输出日志时访问的串口寄存器的物理地址设置为空,即是将中间物理地址IPA到真实物理地址PA的二级映射设置为空,当虚拟机访问串口的物理地址时,例如二级映射时MMU(Memory Management Unit,内存管理单元)失效,发生DataAbort异常(ARM体系定义的异常之一)然后转入Hypervisor来处理,本申请实施例不作具体限定。
当Hypervisor接收到虚拟机发送的异常信息时,表示该虚拟机需要输出日志,由Hypervisor来接收虚拟机输出的日志,可以保证每个虚拟机都能随时输出日志,并且是在Hypervisor的监控下输出日志。
本申请实施例还提供了一种可能的实现方式,将日志通过串口输出至控制台中,包括:
将日志存入预先配置的缓存区中,若确定存入的日志中存在预设字符,则从缓冲区取出已存入至缓存区中的所有日志,并清空缓存区;
将取出的所有日志通过串口输出并打印至控制台中,以使得所有日志在控制台中显示。
图5为本申请实施例提供的一种数据传输流程示意图,在每个虚拟机初始化时还包括预先给每个虚拟机分配一个缓存区,例如为虚拟机VM_N分配对应的缓存区BUF_N(N为正整数),缓存区的大小例如为4K,将虚拟机VM_N输出的日志存入缓存区BUF_N中,然后Hypervisor从缓存区BUF_N中取出日志。
具体地,日志中的数据一般为以行排列的代码,一行日志代码对应一个事件或任务,将日志输入缓存区中是也是将日志中的数据按照字符的顺序一个一个的存入缓存区中,当输入的字符为换行符时,代表一行日志输入完毕,因此,将换行符设置为预设字符,当确定存入的日志的字符为换行符时,就将与存入缓存区中的所有字符取出,并清空缓存区,即每存入一行日志,就取出一行日志,这样可以一行一行的输出日志便于打印。
将日志取出后,就通过串口打印至控制台中进行显示,以便用户阅览日志,根据日志确定应该怎样进行调试,打印的过程本申请实施例不作具体限定。应当注意的是,由于需要在控制台中打印不同虚拟机的日志,为了便于区分不同虚拟机输出的日志,可以对日志内容进行必要的调整,例如在日志中增加虚拟机的标识、增加换行符或空行、对来自不同虚拟机的日志设置不同的颜色等等,增强控制台中显示内容的可读性,避免显示内容混乱影响对日志的阅读或使用。
本申请实施例还提供了一种操作系统的调试方法,应用于虚拟机,如图6所示,该方法包括:
S201、生成日志,日志为虚拟机中运行的操作系统的日志;
S202、将日志发送给虚拟机监视器,以使得虚拟机监视器将日志输出至控制台中;
S203、响应于虚拟机监视器触发的预先配置的中断,调用中断对应的中断处理函数以及预先修改的接收函数,在控制台中根据日志以及调试命令调试操作系统。
当虚拟机接收到中断后,会调用该中断对应的中断处理函数从预先分配的内存中取出调试命令,然后调用预先修改后的接收函数接收中断处理函数取出的调试命令,具体的过程在本申请后续的实施例中进行描述。
本申请实施例通过Hypervisor接管系统唯一的串口,接收所有虚拟机输出的日志,由Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,用户输入的调试命令也由Hypervisor接收并进行解析,确定执行控制命令的执行主体,确定控制台的使用权限,提高调试的效率。
本申请实施例还提供了一种可能的实现方式,调用中断对应的中断处理函数以及预先修改的接收函数,包括:
S2031、调用中断对应的中断处理函数,从预先分配的内存中取出调试命令;
S2032、调用预先修改后的接收函数接收中断处理函数被调用时取出的调试命令;
S2033、根据调试命令以及日志在控制台中调试操作系统。
图7为本申请实施例提供的一种VM_N使用控制台的流程示意图,虚拟机中运行的操作系统会生成日志,以日志记录操作系统中所有产生的操作,本申请实施例中当虚拟机要输出日志时,Hypervisor截获日志,由Hypervisor将日志输出至控制台中,并将接收到的调试命令输出至控制台中,根据调试命令确定拥有控制台的使用权限,将控制台的使用权限切换给虚拟机VM_N,并给VM_N触发预先配置的中断irq_N。
VM_N接收到中断irq_N后,调用irq_N对应的中断处理函数irq_handler_N,从预设的内存shmem_N中取出调试命令,然后VM_N的接收函数接收到irq_handler_N发送的消息,以接收irq_handler_N从内存shmem_N中取出的调试命令,然后VM_N解析调试命令进行调试。
本申请实施例还提供了一种可能的实现方式,响应于虚拟机监视器触发的预先配置的中断,调用中断对应的中断处理函数以及预先修改的接收函数,之前还包括:
接受虚拟机监视器分配的内存、配置的中断以及中断对应的中断处理函数,以及修改后的接收函数;
中断用于被触发时调用中断处理函数,中断处理函数用于取出内存中的调试命令,并将调试命令发送至虚拟机的接收函数;
修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
本申请实施例的执行主体是虚拟机,由虚拟机来接受Hypervisor分配的内存、配置的中断以及中断对应的中断处理函数,以及修改后的接收函数,具体的过程在上述的实施例中已经描述,本申请实施例不再进行赘述。
本申请实施例提供了一种操作系统的调制装置,应用于虚拟机监视器,如图8所示,该装置可以包括:接收模块11、输入输出模块12以及调试模块13,其中,
接收模块11,用于接收虚拟机输出的日志,将日志输出至控制台中,日志为虚拟机中运行的操作系统的日志;
切换模块12,用于若接收到调试命令,则根据调试命令将控制台的使用权限切换至虚拟机;
指示模块13,用于若确定控制台的使用权限已切换至虚拟机,则将调试命令存入预先分配的内存中,并给虚拟机触发预先配置的中断,以指示虚拟机调用中断对应的中断处理函数以及预先修改后的接收函数,在控制台中根据日志以及调试命令调试操作系统。
本申请实施例提供的操作系统的调试装置,具体执行上述方法实施例流程,具体请详见上述操作系统的调试方法实施例的内容,在此不再赘述。本申请实施例提供的操作系统的调试装置,通过Hypervisor接管系统唯一的串口,接收所有虚拟机输出的日志,由Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,用户输入的调试命令也由Hypervisor接收并进行解析,确定执行控制命令的执行主体,确定控制台的使用权限,提高调试的效率。
在另一个可能的实现方式中,指示模块13包括:
第一初始化模块,用于为虚拟机分配内存、配置中断以及中断对应的中断处理函数、以及修改虚拟机的接收函数;
中断用于被触发时调用中断处理函数,中断处理函数用于被调用时取出内存中的调试命令,并将调试命令发送至虚拟机的接收函数;
修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
在又一个可能的实现方式中,接收模块11包括:
地址模块,用于确定虚拟机输出日志时访问的串口寄存器的物理地址,将物理地址的映射设置为空;
接收子单元,用于若接收到虚拟机发送的异常信息,则接收虚拟机输出的日志,异常信息为虚拟机访问串口寄存器的物理地址输出日志时,物理地址为空时产生的。
在又一个可能的实现方式中,接收模块11还包括:
控制台模块,用于将日志存入预先配置的缓存区中,若确定存入的日志中存在预设字符,则从缓冲区取出已存入至缓存区中的所有日志,并清空缓存区;
将取出的所有日志通过串口输出并打印至控制台中,以使得所有日志在控制台中显示。
本申请实施例还提供了一种操作系统的调试装置,应用于虚拟机,如图9所示,该装置可以包括:生成模块21、发送模块22以及调试模块23,其中,
生成模块21,用于生成日志,日志为虚拟机中运行的操作系统的日志;
发送模块22,用于将日志发送给虚拟机监视器,以使得虚拟机监视器将日志输出至控制台中;
调试模块23,用于响应于虚拟机监视器触发的预先配置的中断,调用中断对应的中断处理函数以及预先修改的接收函数,在控制台中根据日志以及调试命令调试操作系统。
本申请实施例提供的操作系统的调试装置,具体执行上述方法实施例流程,具体请详见上述操作系统的调试方法实施例的内容,在此不再赘述。本申请实施例提供的操作系统的调试装置,通过Hypervisor接收所有虚拟机输出的日志,由Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,用户输入的调试命令也由Hypervisor接收并进行解析,根据调试命令将控制台的使用权限切换至虚拟机,使得每个虚拟机都能使用控制台调试,提高调试的效率。
在一个可能的实现方式中,调试模块23包括:
调用子单元,用于调用中断对应的中断处理函数,从预先分配的内存中取出调试命令;
调用预先修改后的接收函数接收中断处理函数被调用时取出的调试命令;
根据调试命令以及日志在控制台中调试操作系统。
在又一个可能的实现方式中,调试模块23还包括:
第二初始化模块,用于接受虚拟机监视器分配的内存、配置的中断以及中断对应的中断处理函数,以及修改后的接收函数;
中断用于被触发时调用中断处理函数,中断处理函数用于取出内存中的调试命令,并将调试命令发送至虚拟机的接收函数;
修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现操作系统的调试方法的步骤,与现有技术相比可实现:通过Hypervisor接收所有虚拟机输出的日志,由Hypervisor统一管理日志的输出,使得每个虚拟机的日志都能随时输出,用户输入的调试命令也由Hypervisor接收并进行解析,根据调试命令将控制台的使用权限切换至虚拟机,使得每个虚拟机都能使用控制台调试,提高调试的效率。
在一个可选实施例中提供了一种电子设备,如图10所示,图10所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (9)
1.一种操作系统的调试方法,其特征在于,应用于虚拟机监视器,所述方法包括:
接收虚拟机输出的日志,将所述日志输出至控制台中,所述日志为所述虚拟机中运行的操作系统的日志;
若接收到调试命令,则根据所述调试命令将所述控制台的使用权限切换至所述虚拟机;
若确定所述控制台的使用权限已切换至所述虚拟机,则将所述调试命令存入预先分配的内存中,并给所述虚拟机触发预先配置的中断,以指示所述虚拟机调用所述中断对应的中断处理函数以及预先修改后的接收函数,在所述控制台中根据所述日志以及所述调试命令调试所述操作系统;
其中,所述将所述调试命令存入预先分配的内存中,并给所述虚拟机触发预先配置的中断,之前还包括:
为所述虚拟机分配所述内存、配置所述中断以及所述中断对应的中断处理函数、以及修改所述虚拟机的接收函数;
所述中断用于被触发时调用所述中断处理函数,所述中断处理函数用于被调用时取出所述内存中的调试命令,并将所述调试命令发送至所述虚拟机的接收函数;
其中,所述预先修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
2.根据权利要求1所述的操作系统的调试方法,其特征在于,所述接收虚拟机输出的日志,之前还包括:
确定所述虚拟机输出日志时访问的寄存器的物理地址,将所述物理地址的映射设置为空;
所述接收虚拟机输出的日志包括:
若接收到所述虚拟机发送的异常信息,则接收所述虚拟机输出的日志,所述异常信息为所述虚拟机访问寄存器的物理地址输出日志时,所述物理地址为空时产生的。
3.根据权利要求1所述的操作系统的调试方法,其特征在于,所述将所述日志输出至控制台中,包括:
将所述日志存入预先配置的缓存区中,若确定存入的所述日志中存在预设字符,则从所述缓存区取出已存入至所述缓存区中的所有日志,并清空所述缓存区;
将所述取出的所有日志输出并打印至控制台中,以使得所述所有日志在所述控制台中显示。
4.一种操作系统的调试方法,其特征在于,应用于虚拟机,所述方法包括:
生成日志,所述日志为所述虚拟机中运行的操作系统的日志;
将所述日志发送给虚拟机监视器,以使得所述虚拟机监视器将所述日志输出至控制台中;
响应于所述虚拟机监视器触发的预先配置的中断,调用所述中断对应的中断处理函数以及预先修改的接收函数,在所述控制台中根据所述日志以及所述调试命令调试所述操作系统;
其中,所述响应于所述虚拟机监视器触发的预先配置的中断,调用所述中断对应的中断处理函数以及预先修改的接收函数,之前还包括:
接受所述虚拟机监视器分配的内存、配置的所述中断以及所述中断对应的中断处理函数,以及修改后的接收函数;
所述中断用于被触发时调用所述中断处理函数,所述中断处理函数用于取出所述内存中的调试命令,并将所述调试命令发送至所述虚拟机的接收函数;
其中,所述预先修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
5.根据权利要求4所述的操作系统的调试方法,其特征在于,所述调用所述中断对应的中断处理函数以及预先修改的接收函数,包括:
调用所述中断对应的中断处理函数,从预先分配的内存中取出所述调试命令;
调用预先修改后的接收函数接收所述中断处理函数被调用时取出的调试命令;
根据所述调试命令以及所述日志在所述控制台中调试所述操作系统。
6.一种操作系统的调试装置,其特征在于,应用于虚拟机监视器,所述装置包括:
接收模块,用于接收虚拟机输出的日志,将所述日志输出至控制台中,所述日志为所述虚拟机中运行的操作系统的日志;
切换模块,用于若接收到调试命令,则根据所述调试命令将所述控制台的使用权限切换至所述虚拟机;
指示模块,用于若确定所述控制台的使用权限已切换至所述虚拟机,则将所述调试命令存入预先分配的内存中,并给所述虚拟机触发预先配置的中断,以指示所述虚拟机调用所述中断对应的中断处理函数以及预先修改后的接收函数,在所述控制台中根据所述日志以及所述调试命令调试所述操作系统;
其中,所述指示模块包括第一初始化模块,用于为所述虚拟机分配所述内存、配置所述中断以及所述中断对应的中断处理函数、以及修改所述虚拟机的接收函数;
所述中断用于被触发时调用所述中断处理函数,所述中断处理函数用于被调用时取出所述内存中的调试命令,并将所述调试命令发送至所述虚拟机的接收函数;
其中,所述预先修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
7.一种操作系统的调试装置,其特征在于,应用于虚拟机,所述装置包括:
生成模块,用于生成日志,所述日志为所述虚拟机中运行的操作系统的日志;
发送模块,用于将所述日志发送给虚拟机监视器,以使得所述虚拟机监视器将所述日志输出至控制台中;
调试模块,用于响应于所述虚拟机监视器触发的预先配置的中断,调用所述中断对应的中断处理函数以及预先修改的接收函数,在所述控制台中根据所述日志以及所述调试命令调试所述操作系统;
其中,所述调试模块,还用于接受所述虚拟机监视器分配的内存、配置的所述中断以及所述中断对应的中断处理函数,以及修改后的接收函数;
所述中断用于被触发时调用所述中断处理函数,所述中断处理函数用于取出所述内存中的调试命令,并将所述调试命令发送至所述虚拟机的接收函数;
其中,所述预先修改后的接收函数用于被调用时接收中断处理函数发送的调试命令。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述操作系统的调试方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至5中任意一项所述操作系统的调试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064067.8A CN113760767B (zh) | 2021-09-10 | 2021-09-10 | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064067.8A CN113760767B (zh) | 2021-09-10 | 2021-09-10 | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760767A CN113760767A (zh) | 2021-12-07 |
CN113760767B true CN113760767B (zh) | 2024-04-19 |
Family
ID=78795001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064067.8A Active CN113760767B (zh) | 2021-09-10 | 2021-09-10 | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760767B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410904A (zh) * | 2006-03-24 | 2009-04-15 | 松下电器产业株式会社 | 再现装置、调试装置、系统lsi、程序 |
CN102799465A (zh) * | 2012-06-30 | 2012-11-28 | 华为技术有限公司 | 分布式虚拟化系统的虚拟中断管理方法及装置 |
JP2014071570A (ja) * | 2012-09-28 | 2014-04-21 | Hitachi Solutions Ltd | 情報端末装置のログ出力方法及びシステム |
US8776028B1 (en) * | 2009-04-04 | 2014-07-08 | Parallels IP Holdings GmbH | Virtual execution environment for software delivery and feedback |
US9270553B1 (en) * | 2014-03-26 | 2016-02-23 | Amazon Technologies, Inc. | Dynamic service debugging in a virtual environment |
US10235326B1 (en) * | 2017-09-05 | 2019-03-19 | Juniper Networks, Inc. | Universal asynchronous receiver/transmitter (UART) data pass-through for virtualized environments |
CN110838953A (zh) * | 2019-11-01 | 2020-02-25 | 北京字节跳动网络技术有限公司 | 一种测试方法、系统、电子设备及存储介质 |
CN111427773A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | Web应用资源监控方法、电子装置及计算机可读存储介质 |
CN112765084A (zh) * | 2021-04-06 | 2021-05-07 | 阿里云计算有限公司 | 计算机设备、虚拟化加速设备、数据传输方法及存储介质 |
US11010280B1 (en) * | 2019-03-13 | 2021-05-18 | Parallels International Gmbh | System and method for virtualization-assisted debugging |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7735081B2 (en) * | 2004-12-17 | 2010-06-08 | Intel Corporation | Method, apparatus and system for transparent unification of virtual machines |
US8479193B2 (en) * | 2004-12-17 | 2013-07-02 | Intel Corporation | Method, apparatus and system for enhancing the usability of virtual machines |
US8621459B2 (en) * | 2006-12-22 | 2013-12-31 | Intel Corporation | Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor |
JP5104958B2 (ja) * | 2008-10-03 | 2012-12-19 | 富士通株式会社 | 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム |
US11132237B2 (en) * | 2009-09-24 | 2021-09-28 | Oracle International Corporation | System and method for usage-based application licensing in a hypervisor virtual execution environment |
US8612937B2 (en) * | 2011-08-25 | 2013-12-17 | International Business Corporation | Synchronously debugging a software program using a plurality of virtual machines |
US9104798B2 (en) * | 2013-05-03 | 2015-08-11 | International Business Machines Corporation | Enabling remote debugging of virtual machines running in a cloud environment |
US9323556B2 (en) * | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9690612B2 (en) * | 2014-12-15 | 2017-06-27 | Vmware, Inc. | Dynamically managing a serial port interface of virtualization software on host device wherein execution is performed not during boot sequence |
US9864624B2 (en) * | 2015-12-21 | 2018-01-09 | International Business Machines Corporation | Software-defined computing system remote support |
US20190018759A1 (en) * | 2017-07-17 | 2019-01-17 | Sap Portals Israel Ltd. | Socialized software debugging |
-
2021
- 2021-09-10 CN CN202111064067.8A patent/CN113760767B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101410904A (zh) * | 2006-03-24 | 2009-04-15 | 松下电器产业株式会社 | 再现装置、调试装置、系统lsi、程序 |
US8776028B1 (en) * | 2009-04-04 | 2014-07-08 | Parallels IP Holdings GmbH | Virtual execution environment for software delivery and feedback |
CN102799465A (zh) * | 2012-06-30 | 2012-11-28 | 华为技术有限公司 | 分布式虚拟化系统的虚拟中断管理方法及装置 |
JP2014071570A (ja) * | 2012-09-28 | 2014-04-21 | Hitachi Solutions Ltd | 情報端末装置のログ出力方法及びシステム |
US9270553B1 (en) * | 2014-03-26 | 2016-02-23 | Amazon Technologies, Inc. | Dynamic service debugging in a virtual environment |
US10235326B1 (en) * | 2017-09-05 | 2019-03-19 | Juniper Networks, Inc. | Universal asynchronous receiver/transmitter (UART) data pass-through for virtualized environments |
US11010280B1 (en) * | 2019-03-13 | 2021-05-18 | Parallels International Gmbh | System and method for virtualization-assisted debugging |
CN110838953A (zh) * | 2019-11-01 | 2020-02-25 | 北京字节跳动网络技术有限公司 | 一种测试方法、系统、电子设备及存储介质 |
CN111427773A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | Web应用资源监控方法、电子装置及计算机可读存储介质 |
CN112765084A (zh) * | 2021-04-06 | 2021-05-07 | 阿里云计算有限公司 | 计算机设备、虚拟化加速设备、数据传输方法及存储介质 |
Non-Patent Citations (4)
Title |
---|
CloudBox - A Virtual Machine Manager for KVM based virtual Machines;Sharma, Akshay等;《 PROCEEDINGS ON 2016 2ND INTERNATIONAL CONFERENCE ON NEXT GENERATION COMPUTING TECHNOLOGIES》;20170808;第588-594页 * |
ReVirt:enabling intrusion analysis through virtual-machine logging and replay;Michae Le et al.;《IEEE Transaction on Dependable and Secure Computing》;第12卷(第3期);284-297 * |
基于Xen的Linux内核源码调试器设计;李超;《中国优秀硕士学位论文全文数据库信息科技辑》;第2013卷(第3期);10-71 * |
自动化测试系统远程调试子系统的设计与实现;蒋宇阳;《中国优秀硕士学位论文全文数据库信息科技辑》;20151215;第2015卷(第12期);I140-370 * |
Also Published As
Publication number | Publication date |
---|---|
CN113760767A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9781117B2 (en) | Multinode hubs for trusted computing | |
JP5608243B2 (ja) | 仮想化環境においてi/o処理を行う方法および装置 | |
CN107807839B (zh) | 一种修改虚拟机内存数据的方法、装置及电子设备 | |
US20100082929A1 (en) | Memory protection method, information processing apparatus, and computer-readable storage medium that stores memory protection program | |
KR20230084300A (ko) | 칩 시스템, 가상 인터럽트 처리 방법 및 대응하는 장치 | |
US10698713B2 (en) | Virtual processor state switching virtual machine functions | |
KR20230025915A (ko) | 시스템 및 인터럽트 처리 방법 | |
US20190171505A1 (en) | Management controller-based solution for processor ras in smi-free environment | |
RU2634172C1 (ru) | Способ передачи управления между адресными пространствами | |
CN107391225A (zh) | 一种基于多ept列表的监控方法和系统 | |
US11868799B2 (en) | Command information transmission method, system, and apparatus, and readable storage medium | |
CN113760767B (zh) | 操作系统的调试方法、装置、电子设备及计算机可读存储介质 | |
US20230131198A1 (en) | Featureless machine enhancement discovery and verification | |
US10496439B1 (en) | Finite resource allocator with intrinsically subordinate operating system | |
WO2022213769A1 (zh) | 一种指令发送方法及装置 | |
CN111258684B (zh) | 一种控制方法和装置 | |
CN115292000A (zh) | 一种虚拟机动态迁移的方法、装置及电子设备 | |
CN108459899B (zh) | 信息保护方法及装置 | |
CN114356812B (zh) | 中断处理方法、装置、电子设备及计算机可读存储介质 | |
CN117272412B (zh) | 中断控制寄存器保护方法、装置、计算机设备及存储介质 | |
US20230195490A1 (en) | Adjunct processor (ap) domain zeroize | |
EP3255544B1 (en) | Interrupt controller | |
CN116974979A (zh) | 在嵌入式存储器上部署文件系统的方法、系统和电路 | |
RU2623883C1 (ru) | Способ выполнения инструкций в системной памяти | |
Costa | VirtIO infrastructure for a static partition hypervisor: VirtIO-Net |
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 |