CN115794313A - 一种虚拟机调试方法、系统、电子设备及存储介质 - Google Patents
一种虚拟机调试方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115794313A CN115794313A CN202211675520.3A CN202211675520A CN115794313A CN 115794313 A CN115794313 A CN 115794313A CN 202211675520 A CN202211675520 A CN 202211675520A CN 115794313 A CN115794313 A CN 115794313A
- Authority
- CN
- China
- Prior art keywords
- debugging
- virtual machine
- command
- target
- machine
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000004891 communication Methods 0.000 claims description 119
- 230000004044 response Effects 0.000 claims description 70
- 230000006870 function Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种虚拟机调试方法、系统、电子设备及存储介质。其中,应用于运行在调试虚拟机上的目标机调试框架执行的虚拟机调试方法包括:通过目标调试服务接收调试虚拟机发送的虚拟机调试命令;通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试;其中,所述调试虚拟机用于接收宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务。本发明实施例的技术方案能够完善虚拟机调试功能,满足虚拟机的调试需求。
Description
技术领域
本发明实施例涉及调试技术领域,尤其涉及一种虚拟机调试方法、系统、电子设备及存储介质。
背景技术
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、能够运行在一个完全隔离环境中的完整计算机系统。虚拟机管理器(Virtual MachineManager,VMM)是实际操作系统,它建立和维护一个管理虚拟机的框架,同时为其他vxd(virtual X driver,虚拟设备驱动程序)程序提供许多重要的服务。图1是现有技术中虚拟机管理器的通用框架的效果示意图,如图1所示,虚拟机管理器可以提供如创建、销毁、启动、重启、关闭、查看、修改、暂停及恢复虚拟机等虚拟机管理功能,还能提供调试/监控、共享内存、设备模拟、系统调用、健康管理虚拟机调度以及虚拟机扩展等功能。虚拟机管理器作为基于微内核架构的虚拟化技术,实现了微内核虚拟机抽象和用户态虚拟机管理服务的有机结合,能为虚拟机运行环境提供实时性支持,提供了在同一多核处理器上承载异构操作系统的灵活性,同时还实现了良好的可靠性和故障控制机制,以保证关键任务、硬实时应用程序和一般用途、不受信任的用户应用程序之间的安全分离,在系统资源受限对实时性要求较高的嵌入式系统领域有着广泛的应用前景。
目前,虚拟机管理器能够对虚拟机提供简单的调试功能,具体可以提供虚拟串口进行串口调试,由虚拟机操作系统自身提供的打印信息方式对虚拟机进行简单的调试。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:目前虚拟机管理器所提供的虚拟机调试功能无法从虚拟机操作系统的第一行代码开始调试虚拟机,同时也无法实现单步调试和设置断点等相对复杂的调试功能。也即,目前虚拟机管理器所提供的虚拟机调试功能难以满足虚拟机的调试需求。
发明内容
本发明实施例提供一种虚拟机调试方法、系统、电子设备及存储介质,能够完善虚拟机调试功能,满足虚拟机的调试需求。
根据本发明的一方面,提供了一种虚拟机调试方法,应用于运行在调试虚拟机上的目标机调试框架,包括:
通过目标调试服务接收调试虚拟机发送的虚拟机调试命令;
通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试;
其中,所述调试虚拟机用于接收宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务。
根据本发明的另一方面,提供了一种一种虚拟机调试方法,应用于运行在宿主机上的宿主机调试框架,包括:
接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令;
将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令;
将所述虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架,以使所述目标机调试框架根据所述虚拟机调试命令,对目标调试虚拟机进行调试。
根据本发明的另一方面,提供了一种虚拟机调试系统,包括宿主机调试框架和运行在调试虚拟机上的目标机调试框架,所述宿主机调试框架和所述目标机调试框架保持通信连接;其中:
所述宿主机调试框架用于向所述目标机调试框架发送虚拟机调试命令;
所述调试虚拟机用于接收所述宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至目标调试服务;
所述目标机调试框架用于通过所述目标调试服务接收所述调试虚拟机发送的虚拟机调试命令;通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试。
根据本发明的另一方面,提供了一种虚拟机调试装置,配置于运行在调试虚拟机上的目标机调试框架,包括:
虚拟机调试命令接收模块,用于通过目标调试服务接收调试虚拟机发送的虚拟机调试命令;
目标调试虚拟机调试模块,用于通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试;
其中,所述调试虚拟机用于接收宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务。
根据本发明的另一方面,提供了一种虚拟机调试装置,配置于运行在宿主机上的宿主机调试框架,包括:
工具侧虚拟机调试命令接收模块,用于接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令;
工具侧虚拟机调试命令转换模块,用于将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令;
虚拟机调试命令发送模块,用于将所述虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架,以使所述目标机调试框架根据所述虚拟机调试命令,对目标调试虚拟机进行调试。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的虚拟机调试方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的虚拟机调试方法。
本发明实施例通过运行在宿主机上的宿主机调试框架接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令,以将工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,并将虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架。目标机调试框架通过目标调试服务接收调试虚拟机发送的虚拟机调试命令,并通过目标调试服务响应于虚拟机调试命令,对目标调试虚拟机进行调试。上述技术方案实现了通过调试框架的方式生成并执行虚拟机调试命令,可以实现多种不同的调试功能,如单点调试或断点调试等。因此,本发明实施例所提供的虚拟机调试方法能够解决现有虚拟机调试方法存在的调试功能简单以及难以满足调试需求等问题,完善虚拟机调试功能,从而满足虚拟机的调试需求。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中虚拟机管理器的通用框架的效果示意图;
图2是本发明实施例一提供的一种虚拟机调试系统的示意图;
图3是本发明实施例一提供的一种虚拟机管理器的框架结构的效果示意图;
图4是本发明实施例一提供的一种调试框架的结构示意图;
图5是本发明实施例一提供的一种基于文本的通信协议的命令的结构示意图;
图6是本发明实施例一提供的一种宿主机绑定目标调试虚拟机的流程示意图;
图7是本发明实施例二提供的一种虚拟机调试方法的流程图;
图8是本发明实施例三提供的一种虚拟机调试方法的流程图;
图9是本发明实施例四提供的一种虚拟机调试装置的示意图;
图10是本发明实施例五提供的一种虚拟机调试装置的示意图;
图11为本发明实施例六提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图2是本发明实施例一提供的一种虚拟机调试系统的示意图,如图2所示,该虚拟机调试系统包括宿主机调试框架110和运行在调试虚拟机上的目标机调试框架120,宿主机调试框架110和目标机调试框架120保持通信连接;其中:
宿主机调试框架110用于向目标机调试框架120发送虚拟机调试命令;所述调试虚拟机用于接收宿主机调试框架110发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务;目标机调试框架120用于通过目标调试服务接收调试虚拟机发送的虚拟机调试命令;通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试。
其中,目标机调试框架和宿主机调试框架都属于调试框架。在本发明实施例中,调试框架是一个通用的、简单的、轻量级的、与设备无关的框架,包括目标机调试框架和宿主机调试框架两种类型。其中,目标机调试框架运行于目标机端,可选的,可以运行于目标机的核心虚拟机上。核心虚拟机可以是运行在核心态的虚拟机。宿主机调试框架则运行于宿主机端,调试框架主要用于宿主机端的工具(如调试工具等)和目标机之间的通信和调试,以满足调试、应用加载和其他设备软件的开发需求。可选的,目标机和宿主机可以是嵌入式设备,也还可以是通用型计算机设备等,目标机只要能够运行虚拟机即可,宿主机只要可以能够运行工具和宿主机调试框架即可,本发明实施例并不对目标机和宿主机的设备类型进行限定。调试虚拟机可以是能够对待调试的虚拟机进行调试的虚拟机类型,可以是核心虚拟机等。目标调试服务可以是能够响应于虚拟机调试命令对匹配的虚拟机进行调试的服务。可以理解的是,虚拟机调试命令不同,其对应的目标调试服务的服务类型也不同。目标调试虚拟机也即虚拟机调试命令调试的虚拟机。可选的,目标调试虚拟机的虚拟机类型可以是用户虚拟机,也可称为应用虚拟机。用户虚拟机可以是运行在用户态的虚拟机。用户虚拟机的数量可以是一个或多个。
图3是本发明实施例一提供的一种虚拟机管理器的框架结构的效果示意图。在一个具体的例子中,如图3所示,通过在核心虚拟机运行调试框架,以通过调试框架对虚拟机进行调试,可以提供调试虚拟机中操作系统的能力,提高虚拟化环境中实时系统的调试效率和调试质量,并丰富多样化的调试功能。虚拟机管理器的虚拟化操作系统提供虚拟机管理以及虚拟机间通信的服务中断异步通知等机制,通过虚拟机管理器的虚拟化操作系统提供的基本机制可以实现虚拟机的按需调试功能。
在本发明的一个可选实施例中,目标机调试框架120和宿主机调试框架110可以包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,可以包括设备抽象层、通信接口层、通信协议层和消息管理层;目标机调试框架120还可以包括服务层架构;所述服务层架构用于管理调试关联服务,提供所述调试关联服务的调用接口,所述调试关联服务可以包括服务管理和调试服务;所述调试服务可以包括断点服务、上下文服务、内存访问服务、会话管理服务、RSP(RemoteSerial Protocol,一种简单的,通过串口线、网络等至少支持半双工通信的媒介进行ASCII消息传输的协议)协议服务、寄存器服务、多核服务、异常服务以及虚拟机调试服务。
图4是本发明实施例一提供的一种调试框架的结构示意图。在一个具体的例子中,如图4所示,调试框架可以采用基于服务的架构,其中,目标机调试框架可以包括通信层架构和服务处架构,宿主机调试框架则可以仅包括通信层架构。通信层架构用于维护宿主机和目标机之间的通信连接。可选的,通信连接是可以采用TCP(Transmission ControlProtocol,传输控制协议)/IP(Internet Protocol,网际互连协议)网络,也可以采用串口或其他网络,只要能够完成通信功能即可,本发明实施例并不对通信层架构的通信网络类型进行限定。同时,通信层架构还可以配置统一的基于文本的通信协议,使用通道收发调试命令消息。可选的,调试命令消息可以是一包采用二进制编码的有组织的数据。服务层架构则用于管理所有的调试关联服务,提供调试关联服务的调用接口。调试关联服务可以包括服务管理和调试服务,调试关联服务可以是一组命令消息、回复消息和事件消息的集合,一个调试关联服务能够实现一类相关的调试功能。调试关联服务和工具是多对多的关系。也即,多个工具可以调用一个服务,即服务共享。或者,一个工具还可以调用多个调试关联服务,即服务协同。
具体的,通信层架构可以包括设备抽象层、通信接口层、通信协议层和消息管理层。通信层框架通过分层的方式,可以使用不同的传输介质,例如TCP/IP或RS232等完成通信功能,且不需要对单个调试关联服务进行任何更改。也即,调试框架可以实现传输实现与服务无关,且服务实现与传输无关的效果。调试关联服务的定义与调试框架本身的定义彼此独立,调试框架提供了统一的通信机制,调试关联服务可以使用统一的通信机制与设备进行通信。
调试关联服务可以提供公共的高级服务,如内存访问和寄存器访问等,主要包括服务管理和调试服务。其中,调试服务可以包括但不限于断点服务、上下文服务、内存访问服务、会话管理服务、RSP协议服务、寄存器服务、多核服务、异常服务以及虚拟机调试服务(部分服务图中未示出)等。在本发明实施例中,调试框架具有极强的扩展性,任何调试需求方都可以在无需修改通信协议或框架软件的情况下,对调试框架添加服务。
在本发明的一个可选实施例中,所述调试虚拟机运行于虚拟机管理器中;所述虚拟机管理器可以用于:检测到目标类型中断时,响应于所述目标类型中断生成服务中断;将所述服务中断发送至所述调试虚拟机,以唤醒所述调试虚拟机接收宿主机调试框架发送的虚拟机调试命令;其中,所述调试虚拟机的优先级为最低优先级。
其中,目标类型中断可以是通信中断或调试中断等,本发明实施例并不对目标类型中断的中断类型进行限定。
需要说明的是,为了不影响用户虚拟机的正常运行,需要对目标机调试框架的优先级配置为最低优先级。例如,可以在虚拟机管理器的操作系统中配置最低优先级的核心虚拟机运行调试框架,以对目标机调试框架的优先级配置为最低优先级。
在本发明实施例中,调试框架可以用于在宿主机和目标机之间,提供一种可扩展的、基于服务的框架,在共享通信的基础上,通过配置统一的通信协议,支持软件开发、调试、信息浏览、监控以及分析等各种类型工具与目标系统的通信,从而解决通信功能存在的需要专属通信连接、通信协议和服务程序,以致各工具的连接、协议和服务之间难以实现协同的问题,提高了调试框架架构的通用性和扩展性。
具体的,目标机调试框架发在接收到虚拟机调试命令之前,可以处于阻塞状态,以等待接收虚拟机调试命令。虚拟机管理器可以对调试虚拟机进行管理。当宿主机调试框架向目标机调试框架发送虚拟机调试命令时,首先由虚拟机管理器生成目标类型中断,如通信中断或调试中断等,其中,调试中断可以由断点调试命令触发生成。当虚拟机管理器检测到生成目标类型中断时,生成服务中断,并将生成的服务中断发送至调试虚拟机,以唤醒调试虚拟机。调试虚拟机被唤醒后,接收宿主机调试框架发送的虚拟机调试命令,如打断点、单步、读内存、写内存等调试命令,并将接收的虚拟机调试命令转发至目标机调试框架中的目标调试服务。目标机调试框架中的目标调试服务可以响应于虚拟机调试命令,对目标调试虚拟机进行调试。
在本发明的一个可选实施例中,所述宿主机调试框架可以用于:接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令;将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令;将所述虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架,以使所述目标机调试框架根据所述虚拟机调试命令,对目标调试虚拟机进行调试。
其中,虚拟机调试工具可以是宿主机端安装的调试工具,用于对用户虚拟机进行调试,可与宿主机调试框架进行交互,生成目标机调试框架能够识别的虚拟机调试命令。工具侧虚拟机调试命令可以是虚拟机调试工具发出的调试命令。
在本发明实施例中,宿主机端可以安装虚拟机调试工具,用于发起对用户虚拟机进行调试的原始的调试命令,即工具侧虚拟机调试命令。示例性的,如图4所示,虚拟机调试工具可以包括图形调试界面、MI(Machine Interface,机器接口)接口和GDB(GNUDebugger,调试器)调试器。其中,图形调试界面可以是图形化的调试功能界面,便于调试人员快速发起调试指令。MI接口用于将调试人员通过图形调试界面发起的调试指令进行转换,发送至GDB调试器。GDB调试器则可以基于调试人员发起的调试指令,生成工具侧虚拟机调试命令,并将工具侧虚拟机调试命令通过RSP调试协议发送至宿主机调试框架。宿主机调试框架接收到工具侧虚拟机调试命令后,可以根据基于文本的通信协议对其进行转换,生成目标机调试框架能够识别响应的虚拟机调试命令。
在本发明的一个可选实施例中,所述基于文本的通信协议的虚拟机调试命令和匹配的响应命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;所述宿主机调试框架可以用于:根据所述工具侧虚拟机调试命令的命令类型确定所述命令名称的字段取值;根据所述目标机调试框架反馈的虚拟机标识信息确定所述虚拟机标识的字段取值;根据所述工具侧虚拟机调试命令的调试功能确定所述服务标识的字段取值和所述命令参数的字段取值;根据所述工具侧虚拟机调试命令的当前调试轮次确定所述序列号的字段取值。所述目标机调试框架可以用于:根据所述基于文本的通信协议的虚拟机调试命令的虚拟机标识确定所述目标调试虚拟机;根据所述基于文本的通信协议的虚拟机调试命令的服务标识确定所述目标调试服务,并通过所述目标调试服务对所述目标调试虚拟机进行调试;根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架。
在本发明的一个可选实施例中,所述根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架,可以包括:根据所述虚拟机调试命令的命令名称、虚拟机标识、服务标识和序列号,确定所述响应命令的命令名称、虚拟机标识、服务标识和序列号的字段取值;获取所述目标调试服务对所述目标调试虚拟机进行调试的调试结果,并根据所述调试结果生成所述响应命令的命令参数;将所述响应命令反馈至所述宿主机调试框架。
其中,基于文本的通信协议可以定义命令的时序和数据格式。命令名称可以用于配置虚拟机调试命令或虚拟机调试命令的响应命令的名称,虚拟机标识用于配置目标调试虚拟机的标识,例如可以是通道号的通道标识等。服务标识可以是目标调试虚拟机匹配的调试服务的标识。序列号可以是当前命令在各调试命令中的序列标识。命令参数则可以是虚拟机调试命令具体的执行参数,也还可以是虚拟机调试命令的响应命令的响应参数。
图5是本发明实施例一提供的一种基于文本的通信协议的命令的结构示意图。在一个具体的例子中,如图5所示,基于文本的通信协议的虚拟机调试命令,可以包括命令名称即command、虚拟机标识即token(通道标识)、服务标识service、序列号seq以及命令参数arguments。同理,目标机调试框架针对虚拟机调试命令向宿主机反馈的响应命令也可以是基于文本的通信协议的响应命令,可以包括命令名称、虚拟机标识、服务标识、序列号以及命令参数等。也即,虚拟机调试命令和虚拟机调试命令的响应命令的命令格式相同。其中,虚拟机调试命令用于通知目标机执行预定义动作,虚拟机调试命令的响应命令则回复虚拟机调试命令的执行结果或状态。
在本发明实施例中,宿主机的虚拟机调试工具通过宿主机调试框架创建宿主机与目标机之间通信的通道,选择需要的调试服务,通过调试器的工具侧虚拟机调试命令(如打断点或读内存等)基于文本的通信协议生成虚拟机调试命令。具体的,宿主机调试框架可以根据工具侧虚拟机调试命令的命令类型确定命令名称的字段取值,根据目标机调试框架反馈的虚拟机标识信息确定虚拟机标识的字段取值,根据工具侧虚拟机调试命令的调试功能确定服务标识的字段取值和命令参数的字段取值,并根据工具侧虚拟机调试命令的当前调试轮次确定序列号的字段取值。目标机收到、解析虚拟机调试命令,确定目标调试虚拟机,并派发调用的目标调试服务(如断点服务或内存访问服务等)对目标调试虚拟机执行调试功能。调试服务的执行结果通过响应命令的命令参数反馈给宿主机。
需要说明的是,宿主机和目标机之间一次完整调试操作的通信流程中涉及的调试命令和响应命令的序列号相同,不同调试操作的通信流程中涉及的命令之间的序列号可以按序进行排序。例如,当宿主机发送第一条虚拟机调试命令时,第一条虚拟机调试命令的序列号可以为1。目标机针对第一条虚拟机调试命令反馈的响应命令的序列号也可以为1。当宿主机发送第二条虚拟机调试命令时,第二条虚拟机调试命令的序列号可以为2。目标机针对第二条虚拟机调试命令反馈的响应命令的序列号也可以为2。
在本发明的一个可选实施例中,目标机调试框架还可以用于:通过所述目标调试服务获取所述虚拟机调试命令的序列号;在确定所述虚拟机调试命令的序列号为超时序列号的情况下,对所述虚拟机调试命令进行丢弃处理。同理,宿主机调试框架还可以用于:获取所述响应命令的序列号;在确定所述响应命令的序列号为超时序列号的情况下,对所述响应命令进行丢弃处理。
可以理解的是,命令之间传输顺序的很重要,传输顺序被打乱容易引起调试错误等问题。调试框架引入序列号保证命令顺序,如果收到超时的命令则可以进行丢弃处理。具体的,调试框架可以对命令配置超时机制,如果目标机调试框架确定虚拟机调试命令的序列号为超时序列号,则可以对虚拟机调试命令进行丢弃处理。如果宿主机调试框架确定响应命令的序列号为超时序列号,也可以对响应命令进行丢弃处理。
在本发明的一个可选实施例中,所述目标机调试框架还用于:通过会话管理服务接收所述调试虚拟机发送的虚拟机绑定命令;通过所述会话管理服务响应于所述虚拟机绑定命令,确定所述目标调试虚拟机。
在本发明的一个可选实施例中,所述目标机调试框架还用于:生成所述目标调试虚拟机的虚拟机标识信息;其中,所述目标调试虚拟机的数量为至少一个;将所述目标调试虚拟机的虚拟机标识信息发送至宿主机的虚拟机调试工具。
其中,会话管理服务属于一种调试服务,用于对调试会话进行管理。一个调试会话可以对应一个目标调试虚拟机,负责对匹配的目标调试虚拟机维持调试状态。多个目标调试虚拟机可以对应建立多个调试会话。虚拟机标识信息可以是用于标识目标调试虚拟机的信息,如目标调试虚拟机的调试会话的通道号等,只要能够唯一标识目标调试虚拟机即可,本发明实施例并不对虚拟机标识信息的信息类型和信息内容进行限定。
图6是本发明实施例一提供的一种宿主机绑定目标调试虚拟机的流程示意图。在一个具体的例子中,如图6所示,在对目标虚拟机进行调试之前,主机端首先可以通过虚拟机调试工具和宿主机调试框架发送虚拟机绑定命令到目标机调试框架的会话管理服务。目标机接收到虚拟机绑定命令时产生通信中断,进入虚拟机管理器的中断处理程序。中断处理程序可以根据通信中断的中断号确定对应的目标调试虚拟机。如果虚拟机管理器确定该中断分配给目标调试虚拟机,则生成服务中断并发送给调试虚拟机,以唤醒调试虚拟机。调试虚拟机进入消息派发接口收取虚拟机绑定命令后,将接收的虚拟机绑定命令转发至目标机调试框架的会话管理服务。目标机调试框架通过会话管理服务基于虚拟机绑定命令确定目标调试虚拟机。具体的,会话管理服务可以调用调试绑定功能,分配一个调试会话与对应目标调试虚拟机进行绑定,并返回虚拟机标识信息如通道号至宿主机的虚拟机调试工具。可以理解的是,当宿主机对多个目标调试虚拟机发送虚拟机绑定命令,以同时对多个目标调试虚拟机进行调试时,目标机调试框架通过会话管理服务可以针对多个目标调试虚拟机分别建立匹配的调试会话。在同时对多个目标调试虚拟机进行调试的过程中,各目标调试虚拟机的调试过程彼此独立,互不影响。当宿主机的虚拟机调试工具接收到目标调试虚拟机的虚拟机标识信息后,即可基于虚拟机标识信息对目标调试虚拟机发起调试指令,以对目标调试虚拟机按需进行调试。
可以理解的是,如果目标机中只运行了一个用户虚拟机,则对该用户虚拟机作为目标调试虚拟机进行调试之前,可以无需发送虚拟机绑定命令对目标调试虚拟机进行绑定并建立调试会话,而直接对该目标调试虚拟机进行调试。
在一个具体的例子中,如图4所示,虚拟机调试方法的完整流程包括下述操作:首先通过图形调试界面发送虚拟机绑定命令,GDB响应于虚拟机绑定命令,生成工具侧虚拟机绑定命令发送至宿主机调试框架。宿主机调试框架将其转换为目标机调试框架能够识别的虚拟机绑定命令发送至目标机调试框的会话管理服务。会话管理响应于虚拟机绑定命令,对匹配的目标调试虚拟机分配一个调试会话,该调试会话绑定管理需要调试的目标调试虚拟机,并返回通道号给宿主机侧的图形调试界面。后续图形调试界面通过MI接口通知GDB调试器执行相应的工具侧虚拟机调试命令。GDB调试器收到工具侧虚拟机调试命令后,基于RSP协议发送给宿主机调试框架。宿主机调试框架将接收的工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,发送虚拟机调试命令到目标机调试框架。
目标机调试框架处于阻塞状态等待服务中断到来,当有目标机接收到虚拟机调试命令时,生成对应的通信中断或调试中断(由虚拟机调试命令中断点调试方式引起)时,虚拟机管理器首先处理通信中断或调试中断,然后发送服务中断给目标机的调试虚拟机如核心虚拟机,以唤醒调试虚拟机接收宿主机的虚拟机调试工具和宿主机调试框架配合发送的打断点、单步、读内存或写内存等虚拟机调试命令,并派发给对应的调试服务进行处理,以达到虚拟机调试的目的。示例性的,当虚拟机调试命令为读内存或写内存命令时,调试虚拟机可以将虚拟机调试命令发生至内存访问服务,以通过内存访问服务响应读内存或写内存命令的虚拟机调试命令,对匹配的目标调试虚拟机进行读内存或写内存的调试操作。
上述技术方案,由于调试操作具有最低的优先级,因此调试虚拟机的调试操作不会抢占用户虚拟机的正常运行。通过虚拟机管理器提供的服务中断机制结合通信中断和调试中断,可以实现低优先级的情况下处理调试虚拟机,能够保证调试虚拟机的调试操作不影响用户虚拟机的正常运行,从而实现调试不影响虚拟机的运行时序的目的。同时,基于丰富的调试服务类型,可以实现对目标调试虚拟机诸如断点调试和单步调试等功能丰富的调试功能,且调试服务可以按需扩展,完善了虚拟机调试功能,从而满足虚拟机多样化的调试需求。
本发明实施例通过运行在宿主机上的宿主机调试框架接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令,以将工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,并将虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架。目标机调试框架通过目标调试服务接收调试虚拟机发送的虚拟机调试命令,并通过目标调试服务响应于虚拟机调试命令,对目标调试虚拟机进行调试。上述技术方案实现了通过调试框架的方式生成并执行虚拟机调试命令,可以实现多种不同的调试功能,如单点调试或断点调试等。因此,本发明实施例所提供的虚拟机调试方法能够解决现有虚拟机调试方法存在的调试功能简单以及难以满足调试需求等问题,完善虚拟机调试功能,从而满足虚拟机的调试需求。
实施例二
图7是本发明实施例二提供的一种虚拟机调试方法的流程图,本实施例可适用于通过目标机调试框架结合宿主机调试框架对虚拟机进行按需调试的情况,该方法可以由虚拟机调试装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中,该电子设备可以是终端设备,也可以是服务器设备,只要能够运行虚拟机管理器即可,本发明实施例并不对电子设备的设备类型进行限定。相应的,如图7所示,该方法包括如下操作:
S110、通过目标调试服务接收调试虚拟机发送的虚拟机调试命令。
S120、通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试,其中,所述调试虚拟机用于接收宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务。
在本发明的一个可选实施例中,在所述通过目标调试服务接收调试虚拟机发送的虚拟机调试命令之前,还可以包括:通过会话管理服务接收所述调试虚拟机发送的虚拟机绑定命令;通过所述会话管理服务响应于所述虚拟机绑定命令,确定所述目标调试虚拟机。
在本发明的一个可选实施例中,在所述通过所述会话管理服务响应于所述虚拟机绑定命令,确定所述目标调试虚拟机之后,还可以包括:生成所述目标调试虚拟机的虚拟机标识信息;其中,所述目标调试虚拟机的数量为至少一个;将所述目标调试虚拟机的虚拟机标识信息发送至宿主机的虚拟机调试工具。
在本发明的一个可选实施例中,所述虚拟机调试命令为基于文本的通信协议的虚拟机调试命令;所述通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试,可以包括:根据所述基于文本的通信协议的虚拟机调试命令的虚拟机标识确定所述目标调试虚拟机;根据所述基于文本的通信协议的虚拟机调试命令的服务标识确定所述目标调试服务,并通过所述目标调试服务对所述目标调试虚拟机进行调试;根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架。
在本发明的一个可选实施例中,所述响应命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;所述根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架,可以包括:根据所述虚拟机调试命令的命令名称、虚拟机标识、服务标识和序列号,确定所述响应命令的命令名称、虚拟机标识、服务标识和序列号的字段取值;获取所述目标调试服务对所述目标调试虚拟机进行调试的调试结果,并根据所述调试结果生成所述响应命令的命令参数;将所述响应命令反馈至所述宿主机调试框架。
在本发明的一个可选实施例中,虚拟机调试方法还可以包括:通过所述目标调试服务获取所述虚拟机调试命令的序列号;在确定所述虚拟机调试命令的序列号为超时序列号的情况下,对所述虚拟机调试命令进行丢弃处理。
在本发明的一个可选实施例中,所述目标机调试框架包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,包括设备抽象层、通信接口层、通信协议层和消息管理层。
在本发明的一个可选实施例中,所述目标机调试框架包括服务层架构;所述服务层架构用于管理调试关联服务,提供所述调试关联服务的调用接口;所述调试关联服务包括服务管理和调试服务;所述调试服务包括如下服务中的一项或多项:断点服务、上下文服务、内存访问服务、会话管理服务、RSP协议服务、寄存器服务、多核服务、异常服务以及虚拟机调试服务。
在本发明的一个可选实施例中,所述调试虚拟机运行于虚拟机管理器中;所述虚拟机管理器用于:检测到目标类型中断时,响应于所述目标类型中断生成服务中断;将所述服务中断发送至所述调试虚拟机,以唤醒所述调试虚拟机接收宿主机调试框架发送的虚拟机调试命令;其中,所述调试虚拟机的优先级为最低优先级。
本发明实施例通过运行在宿主机上的宿主机调试框架接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令,以将工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,并将虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架。目标机调试框架通过目标调试服务接收调试虚拟机发送的虚拟机调试命令,并通过目标调试服务响应于虚拟机调试命令,对目标调试虚拟机进行调试。上述技术方案实现了通过调试框架的方式生成并执行虚拟机调试命令,可以实现多种不同的调试功能,如单点调试或断点调试等。因此,本发明实施例所提供的虚拟机调试方法能够解决现有虚拟机调试方法存在的调试功能简单以及难以满足调试需求等问题,完善虚拟机调试功能,从而满足虚拟机的调试需求。
实施例三
图8是本发明实施例三提供的一种虚拟机调试方法的流程图,本实施例可适用于通过目标机调试框架结合宿主机调试框架对虚拟机进行按需调试的情况,该方法可以由虚拟机调试装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中,该电子设备可以是终端设备,也可以是服务器设备,只要能够运行虚拟机调试工具和宿主机调试框架即可,本发明实施例并不对电子设备的设备类型进行限定。相应的,如图8所示,该方法包括如下操作:
S210、接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令。
S220、将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令。
S230、将所述虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架,以使所述目标机调试框架根据所述虚拟机调试命令,对目标调试虚拟机进行调试。
在本发明的一个可选实施例中,所述基于文本的通信协议的虚拟机调试命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;所述将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,可以包括:根据所述工具侧虚拟机调试命令的命令类型确定所述命令名称的字段取值;根据所述目标机调试框架反馈的虚拟机标识信息确定所述虚拟机标识的字段取值;根据所述工具侧虚拟机调试命令的调试功能确定所述服务标识的字段取值和所述命令参数的字段取值;根据所述工具侧虚拟机调试命令的当前调试轮次确定所述序列号的字段取值。
在本发明的一个可选实施例中,虚拟机调试方法还可以包括:获取所述目标机调试框架反馈的响应命令的序列号;在确定所述响应命令的序列号为超时序列号的情况下,对所述响应命令进行丢弃处理。
在本发明的一个可选实施例中,所述宿主机调试框架包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,包括设备抽象层、通信接口层、通信协议层和消息管理层。
本发明实施例通过运行在宿主机上的宿主机调试框架接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令,以将工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,并将虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架。目标机调试框架通过目标调试服务接收调试虚拟机发送的虚拟机调试命令,并通过目标调试服务响应于虚拟机调试命令,对目标调试虚拟机进行调试。上述技术方案实现了通过调试框架的方式生成并执行虚拟机调试命令,可以实现多种不同的调试功能,如单点调试或断点调试等。因此,本发明实施例所提供的虚拟机调试方法能够解决现有虚拟机调试方法存在的调试功能简单以及难以满足调试需求等问题,完善虚拟机调试功能,从而满足虚拟机的调试需求。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
实施例四
图9是本发明实施例四提供的一种虚拟机调试装置的示意图,该虚拟机调试配置于运行在调试虚拟机上的目标机调试框架,如图9所示,所述装置包括:虚拟机调试命令接收模块310以及目标调试虚拟机调试模块320,其中:
虚拟机调试命令接收模块310,用于通过目标调试服务接收调试虚拟机发送的虚拟机调试命令;
目标调试虚拟机调试模块320,用于通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试;
其中,所述调试虚拟机用于接收宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务。
本发明实施例通过运行在宿主机上的宿主机调试框架接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令,以将工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,并将虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架。目标机调试框架通过目标调试服务接收调试虚拟机发送的虚拟机调试命令,并通过目标调试服务响应于虚拟机调试命令,对目标调试虚拟机进行调试。上述技术方案实现了通过调试框架的方式生成并执行虚拟机调试命令,可以实现多种不同的调试功能,如单点调试或断点调试等。因此,本发明实施例所提供的虚拟机调试方法能够解决现有虚拟机调试方法存在的调试功能简单以及难以满足调试需求等问题,完善虚拟机调试功能,从而满足虚拟机的调试需求。
可选的,虚拟机调试装置还包括目标调试虚拟机确定模块,用于:通过会话管理服务接收所述调试虚拟机发送的虚拟机绑定命令;通过所述会话管理服务响应于所述虚拟机绑定命令,确定所述目标调试虚拟机。
可选的,虚拟机调试装置还包括虚拟机标识信息处理模块,用于:生成所述目标调试虚拟机的虚拟机标识信息;其中,所述目标调试虚拟机的数量为至少一个;将所述目标调试虚拟机的虚拟机标识信息发送至宿主机的虚拟机调试工具。
可选的,所述虚拟机调试命令为基于文本的通信协议的虚拟机调试命令;目标调试虚拟机调试模块220,具体用于:根据所述基于文本的通信协议的虚拟机调试命令的虚拟机标识确定所述目标调试虚拟机;根据所述基于文本的通信协议的虚拟机调试命令的服务标识确定所述目标调试服务,并通过所述目标调试服务对所述目标调试虚拟机进行调试;根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架。
可选的,所述响应命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;目标调试虚拟机调试模块220,具体用于:根据所述虚拟机调试命令的命令名称、虚拟机标识、服务标识和序列号,确定所述响应命令的命令名称、虚拟机标识、服务标识和序列号的字段取值;获取所述目标调试服务对所述目标调试虚拟机进行调试的调试结果,并根据所述调试结果生成所述响应命令的命令参数;将所述响应命令反馈至所述宿主机调试框架。
可选的,虚拟机调试装置还包括虚拟机调试命令丢弃处理模块,用于:通过所述目标调试服务获取所述虚拟机调试命令的序列号;在确定所述虚拟机调试命令的序列号为超时序列号的情况下,对所述虚拟机调试命令进行丢弃处理。
可选的,所述目标机调试框架包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,包括设备抽象层、通信接口层、通信协议层和消息管理层。
可选的,所述目标机调试框架包括服务层架构;所述服务层架构用于管理调试关联服务,提供所述调试关联服务的调用接口;所述调试关联服务包括服务管理和调试服务;所述调试服务包括如下服务中的一项或多项:断点服务、上下文服务、内存访问服务、会话管理服务、RSP协议服务、寄存器服务、多核服务、异常服务以及虚拟机调试服务。
可选的,所述调试虚拟机运行于虚拟机管理器中;所述虚拟机管理器用于:检测到目标类型中断时,响应于所述目标类型中断生成服务中断;将所述服务中断发送至所述调试虚拟机,以唤醒所述调试虚拟机接收宿主机调试框架发送的虚拟机调试命令;其中,所述调试虚拟机的优先级为最低优先级。
上述虚拟机调试装置可执行本发明任意实施例所提供的,由运行在调试虚拟机上的目标机调试框架执行的虚拟机调试方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的,由运行在调试虚拟机上的目标机调试框架执行的虚拟机调试方法。
实施例五
图10是本发明实施例五提供的一种虚拟机调试装置的示意图,该虚拟机调试配置于运行在宿主机上的宿主机调试框架,如图10所示,所述装置包括:工具侧虚拟机调试命令接收模块410、工具侧虚拟机调试命令转换模块420以及虚拟机调试命令发送模块430,其中:
工具侧虚拟机调试命令接收模块410,用于接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令;
工具侧虚拟机调试命令转换模块420,用于将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令;
虚拟机调试命令发送模块430,用于将所述虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架,以使所述目标机调试框架根据所述虚拟机调试命令,对目标调试虚拟机进行调试。
可选的,所述基于文本的通信协议的虚拟机调试命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;工具侧虚拟机调试命令转换模块420,具体用于:根据所述工具侧虚拟机调试命令的命令类型确定所述命令名称的字段取值;根据所述目标机调试框架反馈的虚拟机标识信息确定所述虚拟机标识的字段取值;根据所述工具侧虚拟机调试命令的调试功能确定所述服务标识的字段取值和所述命令参数的字段取值;根据所述工具侧虚拟机调试命令的当前调试轮次确定所述序列号的字段取值。
可选的,虚拟机调试装置还包括响应命令丢弃处理模块,用于:获取所述目标机调试框架反馈的响应命令的序列号;在确定所述响应命令的序列号为超时序列号的情况下,对所述响应命令进行丢弃处理。
可选的,所述宿主机调试框架包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,包括设备抽象层、通信接口层、通信协议层和消息管理层。
本发明实施例通过运行在宿主机上的宿主机调试框架接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令,以将工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,并将虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架。目标机调试框架通过目标调试服务接收调试虚拟机发送的虚拟机调试命令,并通过目标调试服务响应于虚拟机调试命令,对目标调试虚拟机进行调试。上述技术方案实现了通过调试框架的方式生成并执行虚拟机调试命令,可以实现多种不同的调试功能,如单点调试或断点调试等。因此,本发明实施例所提供的虚拟机调试方法能够解决现有虚拟机调试方法存在的调试功能简单以及难以满足调试需求等问题,完善虚拟机调试功能,从而满足虚拟机的调试需求。
上述虚拟机调试装置可执行本发明任意实施例所提供的,由运行在宿主机的宿主机调试框架执行的虚拟机调试方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的,由运行在宿主机的宿主机调试框架执行的虚拟机调试方法。
实施例六
图11示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图11所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如虚拟机调试方法。
在一些实施例中,虚拟机调试方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的虚拟机调试方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行虚拟机调试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
Claims (16)
1.一种虚拟机调试方法,其特征在于,应用于运行在调试虚拟机上的目标机调试框架,包括:
通过目标调试服务接收调试虚拟机发送的虚拟机调试命令;
通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试;
其中,所述调试虚拟机用于接收宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至所述目标调试服务。
2.根据权利要求1所述的方法,其特征在于,在所述通过目标调试服务接收调试虚拟机发送的虚拟机调试命令之前,还包括:
通过会话管理服务接收所述调试虚拟机发送的虚拟机绑定命令;
通过所述会话管理服务响应于所述虚拟机绑定命令,确定所述目标调试虚拟机。
3.根据权利要求2所述的方法,其特征在于,在所述通过所述会话管理服务响应于所述虚拟机绑定命令,确定所述目标调试虚拟机之后,还包括:
生成所述目标调试虚拟机的虚拟机标识信息;其中,所述目标调试虚拟机的数量为至少一个;
将所述目标调试虚拟机的虚拟机标识信息发送至宿主机的虚拟机调试工具。
4.根据权利要求1所述的方法,其特征在于,所述虚拟机调试命令为基于文本的通信协议的虚拟机调试命令;所述通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试,包括:
根据所述基于文本的通信协议的虚拟机调试命令的虚拟机标识确定所述目标调试虚拟机;
根据所述基于文本的通信协议的虚拟机调试命令的服务标识确定所述目标调试服务,并通过所述目标调试服务对所述目标调试虚拟机进行调试;
根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架。
5.根据权利要求4所述的方法,其特征在于,所述响应命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;
所述根据所述目标调试虚拟机的调试结果生成响应命令反馈至所述宿主机调试框架,包括:
根据所述虚拟机调试命令的命令名称、虚拟机标识、服务标识和序列号,确定所述响应命令的命令名称、虚拟机标识、服务标识和序列号的字段取值;
获取所述目标调试服务对所述目标调试虚拟机进行调试的调试结果,并根据所述调试结果生成所述响应命令的命令参数;
将所述响应命令反馈至所述宿主机调试框架。
6.根据权利要求1所述的方法,其特征在于,还包括:
通过所述目标调试服务获取所述虚拟机调试命令的序列号;
在确定所述虚拟机调试命令的序列号为超时序列号的情况下,对所述虚拟机调试命令进行丢弃处理。
7.根据权利要求1所述的方法,其特征在于,所述目标机调试框架包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,包括设备抽象层、通信接口层、通信协议层和消息管理层。
8.根据权利要求1所述的方法,其特征在于,所述目标机调试框架包括服务层架构;所述服务层架构用于管理调试关联服务,提供所述调试关联服务的调用接口;所述调试关联服务包括服务管理和调试服务;所述调试服务包括如下服务中的一项或多项:断点服务、上下文服务、内存访问服务、会话管理服务、RSP协议服务、寄存器服务、多核服务、异常服务以及虚拟机调试服务。
9.根据权利要求1所述的方法,其特征在于,所述调试虚拟机运行于虚拟机管理器中;所述虚拟机管理器用于:
检测到目标类型中断时,响应于所述目标类型中断生成服务中断;
将所述服务中断发送至所述调试虚拟机,以唤醒所述调试虚拟机接收宿主机调试框架发送的虚拟机调试命令;
其中,所述调试虚拟机的优先级为最低优先级。
10.一种虚拟机调试方法,其特征在于,应用于运行在宿主机上的宿主机调试框架,包括:
接收宿主机的虚拟机调试工具发送的工具侧虚拟机调试命令;
将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令;
将所述虚拟机调试命令发送至运行在调试虚拟机上的目标机调试框架,以使所述目标机调试框架根据所述虚拟机调试命令,对目标调试虚拟机进行调试。
11.根据权利要求10所述的方法,其特征在于,所述基于文本的通信协议的虚拟机调试命令包括命令名称、虚拟机标识、服务标识、序列号以及命令参数;
所述将所述工具侧虚拟机调试命令转换为基于文本的通信协议的虚拟机调试命令,包括:
根据所述工具侧虚拟机调试命令的命令类型确定所述命令名称的字段取值;
根据所述目标机调试框架反馈的虚拟机标识信息确定所述虚拟机标识的字段取值;
根据所述工具侧虚拟机调试命令的调试功能确定所述服务标识的字段取值和所述命令参数的字段取值;
根据所述工具侧虚拟机调试命令的当前调试轮次确定所述序列号的字段取值。
12.根据权利要求10所述的方法,其特征在于,还包括:
获取所述目标机调试框架反馈的响应命令的序列号;
在确定所述响应命令的序列号为超时序列号的情况下,对所述响应命令进行丢弃处理。
13.根据权利要求10所述的方法,其特征在于,所述宿主机调试框架包括通信层架构;所述通信层架构用于维护宿主机和目标机之间的通信连接,包括设备抽象层、通信接口层、通信协议层和消息管理层。
14.一种虚拟机调试系统,其特征在于,包括宿主机调试框架和运行在调试虚拟机上的目标机调试框架,所述宿主机调试框架和所述目标机调试框架保持通信连接;其中:
所述宿主机调试框架用于向所述目标机调试框架发送虚拟机调试命令;
所述调试虚拟机用于接收所述宿主机调试框架发送的虚拟机调试命令,并将所述虚拟机调试命令转发至目标调试服务;
所述目标机调试框架用于通过所述目标调试服务接收所述调试虚拟机发送的虚拟机调试命令;通过所述目标调试服务响应于所述虚拟机调试命令,对目标调试虚拟机进行调试。
15.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的虚拟机调试方法,或者实现如权利要求10-13中任一所述的虚拟机调试方法。
16.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-9中任一项所述的虚拟机调试方法,或者实现如权利要求10-13中任一所述的虚拟机调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211675520.3A CN115794313B (zh) | 2022-12-26 | 2022-12-26 | 一种虚拟机调试方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211675520.3A CN115794313B (zh) | 2022-12-26 | 2022-12-26 | 一种虚拟机调试方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794313A true CN115794313A (zh) | 2023-03-14 |
CN115794313B CN115794313B (zh) | 2024-04-09 |
Family
ID=85427235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211675520.3A Active CN115794313B (zh) | 2022-12-26 | 2022-12-26 | 一种虚拟机调试方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794313B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383014A (zh) * | 2023-06-02 | 2023-07-04 | 北京集度科技有限公司 | 监控计算机、软件调试方法、软件调试系统、介质及产品 |
CN116662157A (zh) * | 2023-04-26 | 2023-08-29 | 北京计算机技术及应用研究所 | 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301344A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
CN107688479A (zh) * | 2016-08-03 | 2018-02-13 | 腾讯科技(深圳)有限公司 | Android系统网络集群及其搭建的方法、Android系统网络集群数据处理的方法和系统 |
CN107870855A (zh) * | 2016-09-27 | 2018-04-03 | 北京计算机技术及应用研究所 | 基于天熠嵌入式操作系统的调试系统 |
CN110032426A (zh) * | 2019-04-10 | 2019-07-19 | 浙江讯盟科技有限公司 | 一种可在线实时调试的方法、系统及存储介质 |
US20200319993A1 (en) * | 2019-04-05 | 2020-10-08 | Tmaxsoft Co., Ltd | Servers and computer programs for debugging of native programs and virtual machine programs on integrated development environment |
CN111930472A (zh) * | 2020-08-19 | 2020-11-13 | 曙光信息产业(北京)有限公司 | 一种代码调试方法、装置、电子设备及存储介质 |
CN114595038A (zh) * | 2022-04-28 | 2022-06-07 | 阿里云计算有限公司 | 数据处理方法、计算设备及计算机存储介质 |
CN115412540A (zh) * | 2022-08-05 | 2022-11-29 | 深圳Tcl新技术有限公司 | 远程设备调试方法、装置、电子设备及存储介质 |
-
2022
- 2022-12-26 CN CN202211675520.3A patent/CN115794313B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301344A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
CN107688479A (zh) * | 2016-08-03 | 2018-02-13 | 腾讯科技(深圳)有限公司 | Android系统网络集群及其搭建的方法、Android系统网络集群数据处理的方法和系统 |
CN107870855A (zh) * | 2016-09-27 | 2018-04-03 | 北京计算机技术及应用研究所 | 基于天熠嵌入式操作系统的调试系统 |
US20200319993A1 (en) * | 2019-04-05 | 2020-10-08 | Tmaxsoft Co., Ltd | Servers and computer programs for debugging of native programs and virtual machine programs on integrated development environment |
CN110032426A (zh) * | 2019-04-10 | 2019-07-19 | 浙江讯盟科技有限公司 | 一种可在线实时调试的方法、系统及存储介质 |
CN111930472A (zh) * | 2020-08-19 | 2020-11-13 | 曙光信息产业(北京)有限公司 | 一种代码调试方法、装置、电子设备及存储介质 |
CN114595038A (zh) * | 2022-04-28 | 2022-06-07 | 阿里云计算有限公司 | 数据处理方法、计算设备及计算机存储介质 |
CN115412540A (zh) * | 2022-08-05 | 2022-11-29 | 深圳Tcl新技术有限公司 | 远程设备调试方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
TORLAK, EMINA: "A Lightweight Symbolic Virtual Machine for Solver-Aided Host Languages", ACM SIGPLAN NOTICES VOLUME49 ISSUE6, 30 June 2014 (2014-06-30), pages 530 - 541, XP058051218, DOI: 10.1145/2666356.2594340 * |
李健;陈革;叶晓芸;符凯;何巍;: "基于MILS多级安全架构的远程调试机制", 计算机工程, no. 01, pages 67 - 71 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116662157A (zh) * | 2023-04-26 | 2023-08-29 | 北京计算机技术及应用研究所 | 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法 |
CN116662157B (zh) * | 2023-04-26 | 2024-02-02 | 北京计算机技术及应用研究所 | 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法 |
CN116383014A (zh) * | 2023-06-02 | 2023-07-04 | 北京集度科技有限公司 | 监控计算机、软件调试方法、软件调试系统、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN115794313B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115794313B (zh) | 一种虚拟机调试方法、系统、电子设备及存储介质 | |
CN112988499B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN109683964A (zh) | Bios软件调试控制方法、系统及服务器 | |
CN110893616B (zh) | 一种远程控制方法、装置、计算机设备和存储介质 | |
CN115952561A (zh) | 应用于轨道交通系统的数据处理方法、装置、设备及介质 | |
CN115933591A (zh) | 一种控制器诊断方法、装置、设备和存储介质 | |
CN115410580A (zh) | 指挥调度系统的语音识别方法、装置、设备及介质 | |
EP4086753A1 (en) | Decision scheduling customization method and device based on information flow | |
CN111694686B (zh) | 一种异常服务的处理方法、装置、电子设备及存储介质 | |
CN111195919B (zh) | 一种机器人示教平台及其架构方法 | |
CN114217996A (zh) | 混音方法和装置 | |
CN114253644A (zh) | 下位机设备属性参数的输出方法及装置 | |
CN109634203B (zh) | 基于数控控制器对io端进行控制的控制系统及相应的方法 | |
CN113596170A (zh) | 基于负载均衡设备的停机处理方法、装置、介质及设备 | |
CN112489659A (zh) | 基于输入法的数据处理方法、系统、服务器及终端设备 | |
CN115525415B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN116450120B (zh) | 实时操作系统内核分析方法、装置、设备及介质 | |
CN106161564B (zh) | 一种代理框架服务系统及方法 | |
CN115499332B (zh) | 网络报文的监测方法、装置、设备及介质 | |
CN115794852B (zh) | 一种站场图展示方法、装置、设备和存储介质 | |
CN115981924B (zh) | 设备控制方法、电子设备及存储介质 | |
CN113485856B (zh) | 一种页面处理方法、装置、电子设备、介质及产品 | |
CN118250313A (zh) | 目标设备监控方法、物联网系统、电子设备和存储介质 | |
CN115658341A (zh) | 一种Freeswitch读写数据的方法、装置、设备及介质 | |
CN117033029A (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 |