一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种进程调试方法、装置、设备及存储介质与流程

2022-10-13 05:55:59 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种进程调试方法、装置、设备及存储介质。


背景技术:

2.为了保证进程在容器内的正确执行,开发人员通常需要针对进程进行调试,以检测出进程可能存在的错误并进行修正。在针对进程进行调试时,由于容器所在的运行环境中往往不会配置调试工具,因此,开发人员一般是将基于集成开发环境(integrated development environment,ide)的本地环境,通过某种协议(例如调试(debug)协议)以套接字(socket)的方式实现和容器之间的通信连接,从而可以利用本地环境中的调试工具针对进程进行远程调试。采用这种远程调试方式时,通常需要在基于ide的本地环境中配置容器的网际互连协议(internet protocol,ip)地址和调试端口,从而可以实现本地环境和容器之间的通信连接。
3.相关技术中,在基于ide的本地环境中配置容器的ip地址和调试端口时,主要是依赖于开发人员获取容器的ip地址和调试端口,并手动的在基于ide的本地环境中进行配置。这种依赖于开发人员手动配置的方式,在针对大量的进程进行远程调试时,耗时耗力且效率低下。并且,随着进程需要的程序代码可能进行的更新升级,部署进程的容器的ip地址也会发生变化,且容器的调试端口也可能会改变。这种情况下,开发人员需要重新获取容器的ip地址和调试端口,并进行手动配置。可见,这种依赖于开发人员手动配置的方式难以高效的针对进程进行远程调试。


技术实现要素:

4.本公开提供一种进程调试方法、装置、设备及存储介质,可以提高针对进程进行远程调试的效率。
5.本公开实施例的技术方案如下:
6.根据本公开实施例的第一方面,提供一种进程调试方法,该方法可以应用于电子设备。该方法包括:获取目标进程的目标标识;在预先存储的信息集合中,确定与目标标识匹配的第一调试信息;第一调试信息包括第一容器的网际互联协议ip地址和调试端口;第一容器为部署目标进程的容器;预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息;根据第一调试信息建立和第一容器之间的连接,以对第一容器中的目标进程进行调试。
7.可选的,第一容器为容器集合中的任意一个容器;容器集合中的每个容器包括调试信息获取服务;调试信息获取服务为响应于第一编写操作生成的;调试信息获取服务用于获取每个容器中进程的标识和每个容器的调试信息,并指示每个容器向电子设备发送每个容器中进程的标识和每个容器的调试信息;在确定与目标标识匹配的第一调试信息之前,该进程调试方法还包括:接收第一容器发送的目标进程的目标标识和第一调试信息;调
用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息;调试信息维护服务为响应于第二编写操作生成的;调试信息维护服务用于在信息集合中更新每个容器中进程的标识和每个容器的调试信息的对应关系。
8.可选的,当部署目标进程的容器为第二容器时,在调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息之后,还包括:接收第二容器发送的目标标识和第二调试信息;第二容器为容器集合中除第一容器以外的任意一个容器;第二调试信息包括第二容器的ip地址和调试端口;调用调试信息维护服务,将信息集合中与目标标识对应的第一调试信息替换为第二调试信息。
9.可选的,当部署目标进程的容器为第二容器时,该进程调试方法还包括:在预先存储的信息集合中,确定与目标标识匹配的第二调试信息;根据第二调试信息建立和第二容器之间的连接,以对第二容器中的目标进程进行调试。
10.可选的,在调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息之前,还包括:获取并存储调试信息维护服务。
11.可选的,确定与目标标识匹配的第一调试信息的具体方法,包括:调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息;调试信息匹配服务为响应于第三编写操作生成的;调试信息匹配服务用于在信息集合中确定与每个容器中进程的标识对应的调试信息。
12.可选的,在调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息之前,还包括:获取并存储调试信息匹配服务。
13.可选的,调试信息获取服务为agent服务。agent服务用于在每个容器中进程启动时,获取每个容器中进程的标识和每个容器的调试信息。
14.根据本公开实施例的第二方面,提供一种进程调试装置,包括:获取单元和确定单元。获取单元,用于获取目标进程的目标标识;确定单元,用于在预先存储的信息集合中,确定与获取单元获取到的目标标识匹配的第一调试信息;第一调试信息包括第一容器的ip地址和调试端口;第一容器部署有目标进程;预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息;确定单元,还用于根据第一调试信息建立和第一容器之间的连接,以对第一容器中的目标进程进行调试。
15.可选的,第一容器归属于容器集合;容器集合中的每个容器包括调试信息获取服务;调试信息获取服务为响应于第一编写操作生成的;调试信息获取服务用于获取每个容器中进程的标识和每个容器的调试信息,并指示每个容器向电子设备发送每个容器中进程的标识和每个容器的调试信息;该进程调试装置还包括:接收单元和调用单元。接收单元,用于接收第一容器发送的目标进程的目标标识和第一调试信息;第一容器为容器集合中的任意一个容器;目标进程部署在第一容器中;调用单元,用于调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息;调试信息维护服务为响应于第二编写操作生成的;调试信息维护服务用于在信息集合中更新每个容器中进程的标识和每个容器的调试信息的对应关系。
16.可选的,接收单元,还用于接收第二容器发送的目标标识和第二调试信息;第二容器为容器集合中除第一容器以外的任意一个容器;调用单元,还用于调用调试信息维护服务,将信息集合中与目标标识对应的第一调试信息替换为第二调试信息。
17.可选的,确定单元,还用于在预先存储的信息集合中,确定与目标标识匹配的第二调试信息;确定单元,还用于根据第二调试信息建立和第二容器之间的连接,以对第二容器中的目标进程进行调试。
18.可选的,获取单元,还用于获取并存储调试信息维护服务。
19.可选的,确定单元,具体用于:调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息;调试信息匹配服务为响应于第三编写操作生成的;调试信息匹配服务用于在信息集合中确定与每个容器中进程的标识对应的调试信息。
20.可选的,获取单元,还用于获取并存储调试信息匹配服务。
21.可选的,调试信息获取服务为agent服务。agent服务用于在每个容器中进程启动时,获取每个容器中进程的标识和每个容器的调试信息。
22.根据本公开实施例的第三方面,提供一种电子设备,可以包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行所述指令,以实现上述第一方面中任一种可选地进程调试方法。
23.根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述第一方面中任一种可选地进程调试方法。
24.根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在电子设备的处理器上运行时,使得电子设备执行如第一方面中任一种可选地实现方式所述的进程调试方法。
25.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
26.本公开的实施例提供的技术方案至少带来以下有益效果:
27.基于上述任一方面,本公开中,电子设备在获取目标进程的目标标识后,由于预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息,因此,可以在预先存储的信息集合中,确定到与目标标识匹配的第一调试信息,即部署有目标进程的第一容器的ip地址和调试端口,从而可以根据第一调试信息确定第一容器中目标进程的调试结果。这样一来,在针对一个或多个进程进行远程调试时,本公开可以由电子设备自动地确定第一容器的ip地址和调试端口,并自动配置第一容器的ip地址和调试端口等第一调试信息,以建立和第一容器之间的通信连接,从而对第一容器中目标进程进行调试,并进一步确定第一容器中目标进程的调试结果。相比于通用技术依赖于开发人员手动配置的方式,本公开可以避免针对大量的进程进行远程调试时耗时耗力的问题。因此,本公开可以提高针对进程进行远程调试的效率。
附图说明
28.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
29.图1示出了本公开实施例提供的一种进程调试系统的结构示意图;
30.图2示出了本公开实施例提供的一种电子设备的结构示意图;
31.图3示出了本公开实施例提供的一种进程调试方法的流程示意图;
32.图4示出了本公开实施例提供的一种配置界面的示意图;
33.图5示出了本公开实施例提供的又一种进程调试方法的流程示意图;
34.图6示出了本公开实施例提供的又一种进程调试方法的流程示意图;
35.图7示出了本公开实施例提供的又一种进程调试方法的流程示意图;
36.图8示出了本公开实施例提供的又一种进程调试方法的流程示意图;
37.图9示出了本公开实施例提供的又一种进程调试方法的流程示意图;
38.图10示出了本公开实施例提供的又一种进程调试方法的流程示意图;
39.图11示出了本公开实施例提供的又一种进程调试方法的流程示意图;
40.图12示出了本公开实施例提供的一种进程调试装置的结构示意图;
41.图13示出了本公开实施例提供的一种终端的结构示意图;
42.图14示出了本公开实施例提供的一种服务器的结构示意图。
具体实施方式
43.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
44.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
45.还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
46.本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
47.以下,对本公开实施例涉及到的相关概念进行解释,以便于理解。
48.1、容器
49.容器是一种便携式的软件单元,可以用于部署一个或多个进程,且能够在任何环境下的任何操作系统上轻松移动和运行。在容器中部署进程后,容器会包含支持进程的完整的运行时环境,即程序代码、程序代码所需的全部依赖、类库、其他二进制文件和配置文件等。
50.2、进程
51.进程是程序代码为了实现用户的特殊需求而进行的一次运行活动,是资源分配和调度的基本单位,也是操作系统结构的基础。进程可以看作是程序代码的实体。
52.3、程序代码
53.程序代码是一组由字符、符号或信号码元等组成的、以离散形式表示信息的规则体系,通常是开发人员针对用户的特殊需求所编写的。
54.4、集成开发环境
55.集成开发环境(ide,integrated development environment)是用于提供程序代码开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具,集
成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。如visual studio(一个基本完整的开发工具集)和delphi(一种应用程序开发工具)等。
56.通用技术中,在基于ide的本地环境中配置容器的ip地址和调试端口时,主要是依赖于开发人员获取容器的ip地址和调试端口,并手动的在基于ide的本地环境中进行配置。这种依赖于开发人员手动配置的方式,在针对大量的进程进行远程调试时,耗时耗力且效率低下。并且,随着进程需要的程序代码可能进行的更新升级,部署进程的容器的ip地址也会发生变化,且容器的调试端口也可能会改变。这种情况下,开发人员需要重新获取容器的ip地址和调试端口,并进行手动配置。可见,这种依赖于开发人员手动配置的方式难以高效的针对进程进行远程调试。
57.基于此,本公开实施例提供一种进程调试方法,电子设备在获取目标进程的目标标识后,由于预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息,因此,可以在预先存储的信息集合中,确定到与目标标识匹配的第一调试信息,即部署有目标进程的第一容器的ip地址和调试端口,从而可以根据第一调试信息确定第一容器中目标进程的调试结果。这样一来,在针对一个或多个进程进行远程调试时,本公开可以由电子设备自动地确定第一容器的ip地址和调试端口,并自动配置第一容器的ip地址和调试端口等第一调试信息,以建立和第一容器之间的通信连接,从而对第一容器中目标进程进行调试,并进一步确定第一容器中目标进程的调试结果。相比于通用技术依赖于开发人员手动配置的方式,本公开可以避免针对大量的进程进行远程调试时耗时耗力的问题。因此,本公开可以提高针对进程进行远程调试的效率。
58.图1为本公开实施例提供的一种进程调试系统示意图,如图1所示,该功能配置系统100可以包括:电子设备101和容器部署设备102。电子设备101可以和容器部署设备102之间通信连接。
59.图1中的电子设备101可以是配置有ide的终端,可以用于提供程序代码的开发环境,还可以用于提供针对进程进行的调试器等工具。电子设备101可以通过调试器等工具对开发过程中的程序代码进行调试,也可以对远程的进程(即部署在其他设备上的进程)进行调试。
60.一种可能的方式中,电子设备101还可以包含有数据库或与数据库连接,本公开中的信息集合、调试信息维护服务和调试信息匹配服务等资源文件可以存储于数据库中,以及包括第一容器和第二容器在内的容器集合中的进程的配置文件等资源文件也可以存储于数据库中。
61.可选的,电子设备101可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等可以安装并使用内容社区应用的设备,本公开对该终端的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。
62.图1中的容器部署设备102可以是虚拟机(例如java虚拟机(java virtual machine,jvm)等),也可以是物理机,用于部署容器集合,例如本公开中的第一容器和第二容器。容器是一种便携式的软件单元,可以基于kubernetes(一种容器编排引擎)部署在容
器部署设备102中。容器在部署时,通常会被配置有ip地址,以及包括调试端口、数据端口和控制端口在内的多个端口。例如,调试端口通常可以是5005端口,可以用于支持远程控制人员对容器中的进程和文件等执行各种操作(例如查询操作)。
63.一种可能的方式中,容器可以通过某种协议(例如调试协议)以套接字的方式实现和电子设备101之间的通信连接。
64.可选地,上述图1所示的进程调试系统中,电子设备101可以与容器部署设备102上部署的至少一个容器进行通信连接。本公开对容器的数量及类型均不作限制。
65.本公开实施例提供的进程调试方法可以应用于前述图1所示的应用场景中的电子设备101。
66.结合图1,如图2所示,为本公开实施例提供的一种电子设备的结构示意图。电子设备101可以配置有处理模块21、输入模块22、显示模块23和存储模块24。其中,处理模块21可以用于承载电子设备101配置的ide。输入模块22可以是鼠标和键盘的计算机外接输入设备,用于开发人员执行代码编写操作等。显示模块23可以是液晶显示屏等设备,用于显示开发人员通过输入模块22输入的代码等。存储模块24可以是存储器一类的装置,可以用于存储信息集合、调试信息维护服务和调试信息匹配服务等资源文件,也可以用于存储包括第一容器和第二容器在内的容器集合中的进程的配置文件等资源文件。
67.下面结合附图对本公开实施例提供的进程调试方法进行详细介绍。
68.如图3所示,当进程调试方法应用于电子设备时,该进程调试方法可以包括:
69.s301、电子设备获取目标进程的目标标识。
70.该目标进程为需要进行调试的进程。比如,当目标进程出现运行时错误,即出现导致目标进程停止的错误时,电子设备可以接收到开发人员输入的目标进程的目标标识,以针对目标进程进行调试。
71.一种可能的方式中,结合图2,开发人员在需要将目标进程的目标标识输入至电子设备中时,可以通过电子设备配置的输入模块执行第一点击操作,以在目标进程的配置文件中确定目标进程的目标标识。响应于该第一点击操作,电子设备可以读取目标进程的配置文件,并在配置的显示模块显示目标进程的配置文件。相应的,开发人员可以查阅电子设备的显示模块显示的目标进程的配置文件,并确定目标进程的目标标识。接着,开发人员可以通过电子设备配置的输入模块执行标识输入操作,以将目标进程的目标标识输入电子设备。响应于该标识输入操作,电子设备可以接收到开发人员输入的目标进程的目标标识。
72.需要说明的是,为了有效地区别多个进程(包括目标进程),开发人员在编写多个进程中每个进程的程序代码时,可以同时在每个进程的配置文件中为每个进程设置标识,以用于唯一的标识每个进程。
73.一种可能的方式中,开发人员可以通过通用唯一识别码(universally unique identifier,uuid)函数生成每个进程的标识,也可以通过其他可以生成唯一标识的方式生成每个进程的标识,从而为每个进程设置标识。本公开实施例对此不作限制。
74.一种可能的示例中,如图4所示,为本公开提供的一种配置界面。该配置界面可以称作“编辑配置设置(edit configuration settings)”。预设目标进程的目标标识为a。则开发人员在确定目标进程的目标标识为a后,可以在图4所示的配置界面中“名称(name)”对应的输入框中输入a。相应的,电子设备可以接收到目标进程的目标标识为a。
75.s302、电子设备在预先存储的信息集合中,确定与目标标识匹配的第一调试信息。
76.其中,第一调试信息包括第一容器的ip地址和调试端口。第一容器部署有目标进程。预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息。
77.具体而言,由于电子设备预先存储有信息集合,且信息集合包括多个标识和与多个标识一一对应的多个调试信息。因此,在获取目标进程的目标标识后,电子设备可以在信息集合中,匹配与目标标识对应的调试信息,以确定第一调试信息。后续,电子设备可以通过第一调试信息和第一容器之间建立通信连接,从而在第一容器中对目标进程进行远程调试。
78.一种可能的示例中,结合上述s301中的示例,预设第一容器的ip地址为a,调试端口为5005。开发人员在输入目标进程的目标标识a后,可以通过电子设备配置的输入模块执行模式选择操作,以将“调试模式(debugger mode)”选择为“附加到远程虚拟机(attach to remote jvm)”的模式。响应于该模式选择操作,电子设备可以将“调试模式”确定为“附加到远程虚拟机”,并在信息集合中匹配到与目标标识对应的第一容器的ip地址为a,调试端口为5005。
79.接着,电子设备可以自动将第一容器的ip地址a配置在“主机(host)”对应的输入框中,并将第一容器的调试端口5005配置在“端口(port)”对应的输入框中。
80.s303、电子设备根据第一调试信息建立和第一容器之间的连接,以对第一容器中的目标进程进行调试。
81.需要说明的是,开发人员在确定多个进程(包括目标进程)中每个进程的配置文件时,通常可以将用于调试进程的调试程序添加在每个进程的配置文件中。这样,在确定与目标标识匹配的第一调试信息并和第一容器之间建立通信连接后,电子设备可以向第一容器发送用于指示调试目标进程的指示消息,并实时监听第一容器通过调试端口输出的调试结果。响应于该指示消息,第一容器可以基于调试程序对目标进程进行调试,并通过调试端口输出目标进程的调试结果。相应的,电子设备可以监听到第一容器中目标进程的调试结果。
82.一种可能的示例中,结合上述s302中的示例,在电子设备自动完成相关的配置后,开发人员可以将基于java开发工具包(java development kit,jdk)9或者比jdk9更高的版本(例如jdk10)确定的调试参数,通过电子设备的输入模块输入至“远程虚拟机的主机命令行参数(command line arguments for remote jvm)”对应的输入框中。其中,调试参数可以用于指示电子设备在监听容器上的端口5005。例如,调试参数可以是
“‑
agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005”。
83.接着,开发人员可以通过电子设备配置的输入模块对图4中的“调试”执行第二点击操作。响应于该第二点击操作,电子设备可以基于第一调试信息中第一容器的ip地址和调试端口,以调试参数指示的方式建立和第一容器之间的通信连接。接着,第一容器可以将调试参数复制并粘贴到用于启动目标进程的命令行中,并针对目标进程进行调试。这样,第一容器可以通过调试参数中指示的调试端口(即端口5005)输出目标进程的调试结果。相应的,电子设备可以在端口5005监听到第一容器中目标进程的调试结果。
84.上述实施例提供的技术方案至少带来以下有益效果:由s301-s303可知,电子设备在获取目标进程的目标标识后,由于预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息,因此,可以在预先存储的信息集合中,确定到与目标标识匹配的第一
调试信息,即部署有目标进程的第一容器的ip地址和调试端口,从而可以根据第一调试信息确定第一容器中目标进程的调试结果。这样一来,在针对一个或多个进程进行远程调试时,本公开可以由电子设备自动地确定第一容器的ip地址和调试端口,并自动配置第一容器的ip地址和调试端口等第一调试信息,以建立和第一容器之间的通信连接,从而对第一容器中目标进程进行调试,并进一步确定第一容器中目标进程的调试结果。相比于通用技术依赖于开发人员手动配置的方式,本公开可以避免针对大量的进程进行远程调试时耗时耗力的问题。因此,本公开可以提高针对进程进行远程调试的效率。
85.在一种实施例中,结合图3,在上述s302之前,即电子设备确定与目标标识匹配的第一调试信息之前,如图5所示,本公开提供的进程调试方法,还包括:s401-s402。
86.s401、电子设备接收第一容器发送的目标进程的目标标识和第一调试信息。
87.其中,第一容器为容器集合中的任意一个容器。
88.需要说明的是,开发人员在容器集合中的每个容器内部署进程时,可以将调试信息获取服务添加在每个容器内部署的进程的配置文件中。其中,调试信息获取服务用于在每个容器中的进程启动时或者执行过程中,获取每个容器中进程的标识和每个容器的调试信息,并指示每个容器向电子设备发送每个容器中进程的标识和每个容器的调试信息。
89.基于此,当第一容器中部署的目标进程启动时,或者在第一容器中部署的目标进程的执行过程中,第一容器可以执行调试信息获取服务,以获取到目标进程的目标标识和第一调试信息。接着,第一容器可以向调试信息获取服务指示的电子设备发送目标进程的目标标识和第一调试信息。相应的,电子设备可以接收到第一容器发送的目标进程的目标标识和第一调试信息。
90.一种可能的方式中,结合s301中关于配置标识的描述,第一容器可以执行调试信息获取服务读取目标进程的配置文件,并在该配置文件中确定目标进程的目标标识。
91.一种可能的方式中,第一容器可以执行调试信息获取服务读取第一容器启动目标进程的命令行信息,并在启动目标进程的命令行信息中确定第一容器的ip地址和调试端口。具体而言,容器中进程的运行通常是为了确定返回值(即运行结果),并向其他容器或者物理设备输出这个返回值,从而满足与这个返回值对应的特定需求。并且,为了实现将这个返回值定向输出至其他容器或者物理设备,容器会在启动进程的命令行信息中添加容器本身的ip地址和端口信息,以及该其他容器或者物理设备的ip地址和端口信息。基于此,调试信息获取服务可以在每个容器中的进程启动时或者执行过程中,从启动进程的命令行信息中获取到容器的ip地址和端口信息。这样,调试信息获取服务可以确定容器的ip地址,并在容器的端口信息中确定调试端口。
92.一种可能的方式中,调试信息获取服务可以为响应于第一编写操作生成的。具体而言,结合图2,开发人员可以通过电子设备配置的输入模块执行第一编写操作,对用于实现调试信息获取服务的源代码进行编写。相应的,电子设备配置的处理模块可以接收到开发人员编写的源代码,并生成用于实现调试信息获取服务的源代码。接着,开发人员可以通过电子设备配置的输入模块选择编译器,并对用于实现调试信息获取服务的源代码执行编译操作。响应于该编译操作,电子设备配置的处理模块可以对用于实现调试信息获取服务的源代码进程编译。后续,开发人员在每个容器中部署进程时,可以将编译后的调试信息获取服务作为进程的配置文件部署在每个容器中。
93.一种可能的方式中,调试信息获取服务可以是代理(agent)服务。agent服务为部署在进程的配置文件中的代码块。该代码块在运行时可以看作是寄宿在进程中的独立线程,用于在每个容器中进程启动时,获取每个容器中进程的标识和每个容器的调试信息。
94.s402、电子设备调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息。
95.具体的,为了便于获取到目标进程所在的第一调试信息,以实现针对目标进程进行远程调试,电子设备可以调用调试信息维护服务,确定信息集合中是否存储有与目标标识对应的调试信息。当确定信息集合中未存储有与目标标识对应的调试信息时,电子设备可以调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息。
96.需要说明的是,调试信息维护服务为响应于第二编写操作生成的。调试信息维护服务用于在信息集合中更新每个容器中进程的标识和每个容器的调试信息的对应关系。
97.应理解,关于根据第二编写操作生成调试信息维护服务的具体实现方式,可以参考s401中关于根据第一编写操作生成调试信息获取服务的具体描述,在此不再赘述。
98.一种可能的方式中,开发人员也可以预先在电子设备以外的其他设备上执行第二编写操作以得到调试信息维护服务,并通过该其他设备向电子设备发送调试信息维护服务。相应的,电子设备可以获取并存储调试信息维护服务,以便于调用调试信息维护服务执行相应的存储动作。
99.一种可能的示例中,预设目标进程b的目标标识为b,且目标进程b在时刻1部署在第一容器m中。则在目标进程b在时刻1启动时,第一容器m可以执行调试信息获取服务确定目标进程b的标识和第一容器m的调试信息(即第一容器m的ip地址和调试端口),并向电子设备发送目标进程b的标识和第一容器m的调试信息。相应的,电子设备可以接收到目标标识b和第一容器m的调试信息。
100.接着,电子设备可以调用调试信息维护服务确定信息集合中是否存储有与目标标识b对应的调试信息。当确定信息集合中未存储有与目标标识b对应的调试信息时,电子设备可以调用调试信息维护服务,将目标标识b和第一容器m的调试信息对应存储在信息集合中。这样,信息集合在时刻1会存储有目标标识b和第一容器m的调试信息的对应关系。
101.上述实施例提供的技术方案至少带来以下有益效果:由s401-s402可知,电子设备确定与目标标识匹配的第一调试信息之前,可以获取到多个进程的标识和容器集合的调试信息,且可以调用调试信息维护服务将多个进程的标识和容器集合的调试信息对应存储在信息集合中。这样一来,电子设备中可以预先维护有信息集,当需要对目标进程进行远程调试时,可以方便地在信息集合中确定到与目标标识匹配的第一调试信息。
102.在一种实施例中,当目标进程部署在第二容器中时,如图6所示,本公开提供的进程调试方法,还包括:s501-s502。
103.s501、电子设备接收第二容器发送的目标标识和第二调试信息。
104.其中,第二容器为容器集合中除第一容器以外的任意一个容器。
105.具体而言,当目标进程中的程序代码更新升级时,为了不中断目标进程的运行,开发人员通常会先行将目标进程部署在一个新的容器(即第二容器)中,再清空第一容器中关于目标进程的全部数据。这种情况下,随着部署目标进程的容器由第一容器变更为了第二
容器,目标进程的目标标识对应的调试信息也由第一容器的ip地址和调试端口,变更为了第二容器的ip地址和调试端口。
106.接着,当第二容器中的目标进程启动时,或者在第一容器中部署的目标进程的执行过程中,第二容器可以执行调试信息获取服务读取进程启动时的配置文件,从而获取到目标进程的目标标识和第二调试信息。接着,第二容器可以向调试信息获取服务指示的电子设备发送目标进程的目标标识和第二调试信息。相应的,电子设备可以接收到第二容器发送的目标进程的目标标识和第二调试信息。
107.s502、电子设备调用调试信息维护服务,将信息集合中与目标标识对应的第一调试信息替换为第二调试信息。
108.具体的,在接收到第二容器发送的目标进程的目标标识和第二调试信息后,为了便于针对第二容器中的目标进程进行调试,电子设备可以调用调试信息维护服务,确定信息集合中是否存储有与目标标识对应的调试信息。当确定信息集合中存储有与目标标识对应的第一调试信息时,电子设备可以调用调试信息维护服务,清除信息集合中与目标标识对应的第一调试信息,并将目标标识对应的调试信息存储为第二调试信息,从而将信息集合中与目标标识对应的第一调试信息替换为第二调试信息。
109.一种可能的示例中,结合s402中的示例,预设目标进程b在时刻2部署在第二容器n中。其中,时刻2为时刻1之后的时刻。则在目标进程b在时刻2启动时,第二容器n可以执行调试信息获取服务确定目标进程b的标识和第二容器n的调试信息(即第二容器n的ip地址和调试端口),并向电子设备发送目标进程b的标识和第二容器n的调试信息。相应的,电子设备可以接收到目标标识b和第二容器n的调试信息。
110.接着,电子设备可以调用调试信息维护服务确定信息集合中是否存储有与目标标识b对应的调试信息。当确定信息集合中存储有与目标标识b对应的第一容器m的调试信息时,电子设备可以调用调试信息维护服务,清除信息集合中与目标标识b对应的第一容器m的调试信息,并将目标标识b和第二容器n的调试信息对应存储在信息集合中。这样,信息集合在时刻2会存储有目标标识b和第二容器n的调试信息的对应关系。
111.上述实施例提供的技术方案至少带来以下有益效果:由s501-s502可知,在电子设备将第一容器中进程的目标标识和第一调试信息对应存储在信息集合中之后,当目标进程部署在第二容器中时,电子设备可以接收到第二容器发送的目标标识和第二调试信息,并调用调试信息维护服务在信息集合中更新目标标识对应的调试信息为第二调试信息。这样一来,电子设备可以实现对信息集合中进程对应的调试信息的动态更新,无论部署进程的容器的调试信息如何变更,仅需配置进程的标识便可以实现对进程的远程调试。即部署进程的容器发生变化后,在不修改电子设备上ide的相关配置的情况下,电子设备可以自动配置变化后的最新容器的ip地址和调试端口,并和最新容器之间建立通信连接,极大减少了开发人员的操作成本。因此,本公开可以避免通用技术中需要开发人员重新获取,并手动配置更新后容器的ip地址和调试端口的方式导致的耗时耗力的问题,可以提高针对进程进行远程调试的效率。
112.在一种可以实现的示例中,当部署目标进程的容器为第二容器时,如图7所示,本公开提供的进程调试方法,还包括:s601-s602。
113.s601、电子设备在预先存储的信息集合中,确定与目标标识匹配的第二调试信息。
114.应理解,关于s601中,电子设备在预先存储的信息集合中,确定与目标标识匹配的第二调试信息的具体实现方式,可以参考s302中,电子设备在预先存储的信息集合中,确定与目标标识匹配的第一调试信息的描述。在此不再赘述。
115.s602、电子设备根据第二调试信息建立和第二容器之间的连接,以对第二容器中的目标进程进行调试。
116.应理解,关于s602中,电子设备根据第二调试信息建立和第二容器之间的连接,以对第二容器中的目标进程进行调试的具体实现方式,可以参考s303中,电子设备根据第一调试信息建立和第一容器之间的连接,以对第一容器中的目标进程进行调试的描述。在此不再赘述。
117.上述实施例提供的技术方案至少带来以下有益效果:由s601-s602可知,当部署目标进程的容器为第二容器时,若需要对目标进程进行调试,电子设备可以在信息集合中确定到与目标标识对应的第二调试信息,并根据第二调试信息建立和第二容器之间的连接,以对第二容器中的目标进程进行调试。这样一来,虽然部署目标进程的容器进行了变更,但开发人员仍然只需在电子设备上输入目标进程的目标标识便可以实现对进程的远程调试。因此,本公开可以避免部署进程的容器发生变更后,需要开发人员重新获取并手动配置调试信息的方式导致的耗时耗力的问题,可以提高针对进程进行远程调试的效率。
118.在一种可以实现的示例中,结合图5,在上述s401之前,即电子设备调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息之前,如图8所示,本公开提供的进程调试方法,还包括:s701。
119.s701、电子设备获取并存储调试信息维护服务。
120.具体的,开发人员可以通过电子设备的输入模块执行第二编写操作。响应于第二编写操作,电子设备可以接收到调试信息维护服务,并将调试信息维护服务存储在第一预设位置,以便于调用调试信息维护服务针对信息集合执行相应的更新动作。
121.可选的,第一预设位置可以是用于存储信息集合的数据库,也可以是其他由开发人员预设的便于对调试信息维护服务进行调用的位置。
122.一种可能的方式中,在电子设备上生成调试信息维护服务后,开发人员可以在电子设备上执行用于将调试信息维护服务存储在第一预设位置的第一程序存储操作。响应于该第一程序存储操作,电子设备可以将调试信息维护服务存储在预设位置,以实现对于调试信息维护服务的预先配置。
123.上述实施例提供的技术方案至少带来以下有益效果:由s701可知,在接收第一容器发送的目标进程的目标标识和第一调试信息之前,电子设备可以获取并存储调试信息维护服务,以完成对于调试信息维护服务的预先配置。这样,当接收到第一容器发送的目标进程的目标标识和第一调试信息后,电子设备可以调用调试信息维护服务,及时地对信息集合进行动态维护。
124.在一种可以实现的示例中,结合图3,在上述s302中,电子设备确定与目标标识匹配的第一调试信息时,如图9所示,本公开提供一种可选的实施方式,具体包括:s801。
125.s801、电子设备调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息。
126.其中,调试信息匹配服务为响应于第三编写操作生成的。调试信息匹配服务用于
在信息集合中确定与每个容器中进程的标识对应的调试信息。
127.应理解,关于根据第三编写操作生成调试信息匹配服务的具体实现方式,可以参考s401中关于根据第一编写操作生成调试信息获取服务的具体描述,在此不再赘述。
128.具体的,在获取到目标进程的目标标识后,为了和第一容器建立通信连接,电子设备可以调用调试信息匹配服务,在信息集合中匹配与目标标识对应的调试信息,并将与目标标识对应的调试信息确定为第一调试信息。
129.上述实施例提供的技术方案至少带来以下有益效果:由上述s801可知,给出了一种电子设备确定与目标标识匹配的第一调试信息的具体实现方式。电子设备可以在获取到目标进程的目标标识后,调用调试信息匹配服务自动确定与目标标识匹配的第一调试信息,从而提高了针对进程进行远程调试的效率。
130.在一种可以实现的示例中,结合图9,在上述s801之前,即电子设备调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息之前,如图10所示,本公开提供的进程调试方法,还包括:s901。
131.s901、电子设备获取并存储调试信息匹配服务。
132.具体的,开发人员可以通过电子设备的输入模块执行第三编写操作。响应于第三编写操作,电子设备可以接收到调试信息匹配服务,并将调试信息匹配服务存储在第二预设位置,以便于调用调试信息匹配服务确定与目标标识匹配的第一调试信息。
133.可选的,第二预设位置可以是ide中用于存储调试工具的数据库,也可以是其他由开发人员预设的便于对调试信息匹配服务进行调用的位置。
134.一种可能的方式中,在电子设备上生成调试信息匹配服务后,开发人员可以在电子设备上执行用于将调试信息匹配服务存储在第二预设位置的第二程序存储操作。响应于该第二程序存储操作,电子设备可以将调试信息匹配服务存储在第二预设位置,以实现对于调试信息匹配服务的预先配置。
135.上述实施例提供的技术方案至少带来以下有益效果:由上述s901可知,在调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息之前,电子设备可以获取并存储调试信息匹配服务,以完成对于调试信息匹配服务的预先配置。这样,当需要确定与获取到的目标进程的目标标识匹配的第一调试信息时,电子设备可以自动调用调试信息匹配服务,快速地确定目标标识匹配的第一调试信息。
136.在一种可以实现的示例中,如图11所示,为本公开提供的进程调试方法的一种流程示意图。在目标进程启动时,第一容器可以加载调试信息获取服务,获取目标进程的目标标识和第一容器的第一调试信息。其中,第一调试信息包括第一容器的ip地址和调试端口。接着,第一容器可以根据调试信息获取服务的指示,将目标标识和第一调试信息上报至电子设备。后续,当需要针对目标进程进行远程调试时,开发人员可以在配置有ide的电子设备上执行输入目标标识的输入操作。响应于该输入操作,电子设备可以接收到目标进程的目标标识,并调用调试信息匹配服务确定与目标标识匹配的第一调试信息。具体而言,电子设备可以调用调试信息匹配服务在信息集合中确定与目标标识匹配的第一调试信息。这样,电子设备可以根据第一调试信息和第一容器建立通信连接,从而实现对于目标进程的远程调试。
137.可以理解的,在实际实施时,本公开实施例所述的终端/服务器可以包含有用于实
现前述对应进程调试方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
138.基于这样的理解,本公开实施例还对应提供一种进程调试装置。图12示出了本公开实施例提供的进程调试装置的结构示意图。如图12所示,该进程调试装置可以包括:获取单元1001和确定单元1002。
139.获取单元1001,用于获取目标进程的目标标识;确定单元1002,用于在预先存储的信息集合中,确定与获取单元1001获取到的目标标识匹配的第一调试信息;第一调试信息包括第一容器的ip地址和调试端口;第一容器部署有目标进程;预先存储的信息集合包括多个标识和与多个标识一一对应的多个调试信息;确定单元1002,还用于根据第一调试信息建立和第一容器之间的连接,以对第一容器中的目标进程进行调试。
140.可选的,第一容器归属于容器集合;容器集合中的每个容器包括调试信息获取服务;调试信息获取服务为响应于第一编写操作生成的;调试信息获取服务用于获取每个容器中进程的标识和每个容器的调试信息,并指示每个容器向电子设备发送每个容器中进程的标识和每个容器的调试信息;该进程调试装置还包括:接收单元1003和调用单元1004。接收单元1003,用于接收第一容器发送的目标进程的目标标识和第一调试信息;第一容器为容器集合中的任意一个容器;目标进程部署在第一容器中;调用单元1004,用于调用调试信息维护服务,将信息集合中与目标标识对应的调试信息存储为第一调试信息;调试信息维护服务为响应于第二编写操作生成的;调试信息维护服务用于在信息集合中更新每个容器中进程的标识和每个容器的调试信息的对应关系。
141.可选的,接收单元1003,还用于接收第二容器发送的目标标识和第二调试信息;第二容器为容器集合中除第一容器以外的任意一个容器;调用单元1004,还用于调用调试信息维护服务,将信息集合中与目标标识对应的第一调试信息替换为第二调试信息。
142.可选的,确定单元1002,还用于在预先存储的信息集合中,确定与目标标识匹配的第二调试信息;确定单元1002,还用于根据第二调试信息建立和第二容器之间的连接,以对第二容器中的目标进程进行调试。
143.可选的,获取单元1001,还用于获取并存储调试信息维护服务。
144.可选的,确定单元1002,具体用于:调用调试信息匹配服务,将信息集合中与目标标识对应的调试信息确定为第一调试信息;调试信息匹配服务为响应于第三编写操作生成的;调试信息匹配服务用于在信息集合中确定与每个容器中进程的标识对应的调试信息。
145.可选的,获取单元1001,还用于获取并存储调试信息匹配服务。
146.可选的,调试信息获取服务为agent服务。agent服务用于在每个容器中进程启动时,获取每个容器中进程的标识和每个容器的调试信息。
147.如上所述,本公开实施例可以根据上述方法示例对服务端进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划
分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
148.关于上述实施例中的进程调试装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。
149.本公开实施例还提供一种终端,终端可以是手机、电脑等用户终端。图13示出了本公开实施例提供的终端的结构示意图。该终端可以是进程调试装置可以包括至少一个处理器61,通信总线62,存储器63以及至少一个通信接口64。
150.处理器61可以是一个处理器(central processing units,cpu),微处理单元,asic,或一个或多个用于控制本公开方案程序执行的集成电路。
151.通信总线62可包括一通路,在上述组件之间传送信息。
152.通信接口64,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如服务器、以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。
153.存储器63可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
154.其中,存储器63用于存储执行本公开方案的应用程序代码,并由处理器61来控制执行。处理器61用于执行存储器63中存储的应用程序代码,从而实现本公开方法中的功能。
155.在具体实现中,作为一种实施例,处理器61可以包括一个或多个cpu,例如图13中的cpu0和cpu1。
156.在具体实现中,作为一种实施例,终端可以包括多个处理器,例如图13中的处理器61和处理器65。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
157.在具体实现中,作为一种实施例,终端还可以包括输入设备66和输出设备67。输入设备66和输出设备67通信,可以以多种方式接受用户的输入。例如,输入设备66可以是鼠标、键盘、触摸屏设备或传感设备等。输出设备67和处理器61通信,可以以多种方式来显示信息。例如,输出设备61可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备等。
158.本领域技术人员可以理解,图13中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
159.本公开实施例还提供一种服务器。图14示出了本公开实施例提供的服务器的结构示意图。该服务器可以是进程调试装置。该服务器可因配置或性能不同而产生比较大的差
异,可以包括一个或一个以上处理器71和一个或一个以上的存储器72。其中,存储器72中存储有至少一条指令,至少一条指令由处理器71加载并执行以实现上述各个方法实施例提供的进程调试方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
160.本公开还提供了一种包括指令的计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机能够执行上述所示实施例提供的进程调试方法。例如,计算机可读存储介质可以为包括指令的存储器63,上述指令可由终端的处理器61执行以完成上述方法。又例如,计算机可读存储介质可以为包括指令的存储器72,上述指令可由服务器的处理器71执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。
161.本公开还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行上述图3,以及图5至图11任一附图所示的进程调试方法。
162.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
163.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献