一种二进制包的云端调试方法、装置、存储介质及计算设备与流程

未命名 08-02 阅读:70 评论:0


1.本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种二进制包的云端调试方法、装置、存储介质及计算设备。


背景技术:

2.本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.集成开发环境(integrated development environment,ide)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形界面等工具。
4.其中,ide通常自带了断点调试功能,断点调试(debug)是指在程序的某一行设置一个断点,在调试时,程序运行到这一行就会停住,然后由程序员一步一步的接着往下调试,当调试到出错的代码行时,即可显示错误,由程序员进行分析找到故障(bug)所在。因此,利用断点调试功能,可以通过查看源码的执行过程,发现错误所在。
5.然而,上述集成开发环境中,可能还存在二方库或者三方库的代码,这些代码可以通过源码的方式接入,也可以通过二进制的方式接入。在通过二进制方式接入时,二进制包无法像源码包那样直接查看源码,用户在调试时存在一定的不便。


技术实现要素:

6.在本上下文中,本公开的实施方式期望提供一种二进制包的云端调试方法、装置、存储介质及计算设备。
7.在本公开实施方式的第一方面中,提供了一种二进制包的云端调试方法,应用于云端,包括:
8.获取用户本地的集成开发环境中生成的调试配置文件;其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包;
9.根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包;
10.响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。
11.在本公开实施方式的第二方面中,提供了一种二进制包的云端调试装置,应用于云端,包括:
12.获取模块,获取用户本地的集成开发环境中生成的调试配置文件;其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包;
13.构建模块,根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包;
14.输出模块,响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。
15.在本公开实施方式的第三方面中,提供了一种存储介质;其上存储有计算机指令,该指令被处理器执行时实现任一所述二进制包的云端调试方法。
16.在本公开实施方式的第四方面中,提供了一种计算设备,包括:
17.处理器;以及,用于存储处理器可执行指令的存储器;
18.其中,所述处理器通过运行所述可执行指令以实现任一所述二进制包的云端调试方法。
19.本公开以上的实施方式,至少具有如下的有益效果:
20.通过以上技术方案,将本地集成开发环境中的上下文信息和调试信息同步到云端,由云端构建与本地集成开发环境相同的代码运行环境,并导入二进制包对应的源码包,通过本地集成开发环境输出调试界面,将断点调试无缝转移到云端进行。在上述过程中,一方面,将源码包导入到云端,取代下载至本地,不仅保护了源码包的安全,还节约了本地的存储资源;另一方面,在云端进行调试,不仅更加方便快捷,还通过调试界面保证了和本地的实时交互。
附图说明
21.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
22.图1示意性地示出了根据本公开实施方式的一种二进制包的云端调试方法的流程图;
23.图2示意性地示出了根据本公开实施方式的一种二进制包的云端调试方法的场景示意图;
24.图3示意性地示出了根据本公开实施方式的一种二进制包的云端调试方法的示意图;
25.图4示意性地示出了根据本公开实施方式的一种二进制包的云端调试方法的交互示意图;
26.图5示意性地示出了根据本公开实施方式的一种二进制包的云端调试装置的框图;
27.图6示意性地示出了根据本公开实施方式的一种二进制包的云端调试介质的示意图;
28.图7示意性地示出了根据本公开实施方式的一种能够实现上述方法的电子设备的示意图。
29.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
30.下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
31.本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机可读存储介质。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
32.根据本公开的实施方式,提出了一种二进制包的云端调试方法、装置、介质和计算设备。
33.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。并且,本公开所涉及的数据可以为经用户授权或经过各方充分授权的数据。
34.下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
35.应用场景总览
36.当本地的集成开发环境中运行的项目出现问题时,需要程序员进行调试。比如,当项目的代码库a中的代码需要调试时,如果代码的接入方式是二进制,代码库中保存的是已经编译完成的二进制包,并未保存源码,程序员也就无法直接对代码的源码进行调试。
37.相关技术中,为了获取代码的源码,程序员可以在配置文件中更换代码库a的接入方式,将接入方式从二进制修改为源码接入,然后再重新编译运行源码。
38.然而,在进行切换时需要进行等待,尤其是代码量级非常大时,切换耗费的时间过长,并且重新接入后编译的时间也会变长,整个过程费时费力。并且,切换接入方式会打断原本的调试过程,可能存在切换后问题无法复现的情况,这将失去原本可以解决问题的机会,加大解决问题的成本。另外,当其他用户遇到类似问题时,需要重新进行切换,无法复用,造成了计算资源的浪费。
39.除了切换接入方式来获取源码,还可以在代码库a接入时,就建立一个与二进制包关联的文件夹,用于存放代码库a的源码包。当需要进行调试时,可以通过获取关联的源码包来进行调试。
40.然而,代码库可能会被接入至多个项目中,而且每个项目使用的代码库的版本可能不同,比如项目a可能接入了代码库a的1.0版本,关联了1.0版本的源码包,而项目b可能接入了代码库a的2.0版本,关联了2.0版本的源码包,当项目和版本越来越多时,容易造成管理的混乱,导致源码包出现错乱。并且,由于源码包需要进行本地关联,会对本地的存储资源造成很大的压力。另外,源码关联也仅在当前的本地终端中进行,无法在团队之间共享。
41.需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
42.发明概述
43.本发明人发现,传统的二进制包调试,如果采用切换源码接入的方式,不仅费时费
力,也不够方便快捷,而如果采用本地源码关联的方式,不仅容易带来管理混乱的问题,也容易浪费存储资源,并且,这两种方式在多人调试时都存在计算资源浪费的问题。
44.有鉴于此,本说明书提供一种在云端复现本地的代码运行环境并在云端导入源码包,从而将本地的断点调试无缝转移到云端的技术方案。
45.本说明书的核心技术构思在于:
46.通过本地提供的调试配置文件,一方面可以获取上下文信息来构建与本地相同的代码运行环境,另一方面可以获取调试信息来无缝进行断点调试。并且,在代码运行环境中,通过将源码包导入至云端而非本地,保护源码包的数据安全,同时节约本地的存储资源。另外,通过输出调试界面,可以使在云端的调试更加便捷,保证良好的交互性。
47.通过以上技术方案,将本地集成开发环境中的上下文信息和调试信息同步到云端,由云端构建与本地集成开发环境相同的代码运行环境,并导入二进制包对应的源码包,通过本地集成开发环境输出调试界面,将断点调试无缝转移到云端进行。在上述过程中,一方面,将源码包导入到云端,取代下载至本地,不仅保护了源码包的安全,还节约了本地的存储资源;另一方面,在云端进行调试,不仅更加方便快捷,还通过调试界面保证了和本地的实时交互。
48.在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
49.示例性方法
50.下面将通过具体的实施例对本说明书的技术构思进行详细描述。
51.本公开旨在提供一种将本地集成开发环境中的上下文信息和调试信息同步到云端,由云端构建与本地集成开发环境相同的代码运行环境,并导入二进制包对应的源码包,通过本地集成开发环境输出调试界面,将断点调试无缝转移到云端进行的技术方案。
52.在实现时,云端可以获取用户本地的集成开发环境中生成的调试配置文件。
53.其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包。
54.例如,当用户本地的项目在运行时触发了异常断点时,可以生成调试配置文件,该调试配置文件中可以至少包括本地的集成开发环境中的上下文信息和调试信息,云端可以接收用户本地发送的调试配置文件。
55.然后,云端可以根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包。
56.例如,云端可以先根据获取到的调试配置文件中的上下文信息,构建与用户本地的集成开发环境相同的代码运行环境,进而在构建出的代码运行环境中,导入与上述项目接入的代码库中的二进制包对应的源码包。
57.之后,云端可以响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。
58.例如,云端可以根据获取到的调试配置文件中的调试信息,开启调试功能,通过用户本地的集成开发环境中的图形界面,来输出调试界面,以使用户基于调试界面实现和云
端的实时交互,进行调试操作。
59.通过以上技术方案,将本地集成开发环境中的上下文信息和调试信息同步到云端,由云端构建与本地集成开发环境相同的代码运行环境,并导入二进制包对应的源码包,通过本地集成开发环境输出调试界面,将断点调试无缝转移到云端进行。在上述过程中,一方面,将源码包导入到云端,取代下载至本地,不仅保护了源码包的安全,还节约了本地的存储资源;另一方面,在云端进行调试,不仅更加方便快捷,还通过调试界面保证了和本地的实时交互。
60.请参见图1,图1是一示例性实施例提供的一种二进制包的云端调试方法的流程图,包括以下步骤:
61.步骤101,获取用户本地的集成开发环境中生成的调试配置文件;其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包。
62.在本实施例中,云端可以获取用户本地的集成开发环境中生成的调试配置文件。
63.其中,上述调试配置文件可以由集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;上述调试配置文件至少可以包括上下文信息和调试信息;上述项目中接入了代码库中已经编译完成的二进制包。
64.上述云端可以是服务端,也可以是云服务端,本说明书对此不做限定。
65.例如,当用户本地运行的项目触发异常断点时,用户本地可以生成调试配置文件,该调试配置文件中可以至少包括本地的集成开发环境中的上下文信息和调试信息,云端可以接收用户本地发送的调试配置文件。
66.在示出的一种实施方式中,云端还可以接收所述用户本地的集成开发环境响应于用户的启动指令发起的通信连接请求,建立和所述用户本地的集成开发环境的通信连接。
67.例如,用户可以在本地的集成开发环境中下发启动指令,发起和云端的通信连接请求,云端在接收到该通信连接请求之后,可以建立和用户本地的集成开发环境的通信连接。
68.上述通信连接方式可以是socket(套接字)连接的方式,也可以是tcp(传输控制协议,transmission control protocol)连接的方式,本说明书对此不做限定。
69.例如,用户在启动本地的集成开发环境时,本地集成开发环境会响应于启动指令,向云端发起socket连接,并建立本地和云端的稳定的socket连接。
70.步骤102,根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包。
71.在本实施例中,云端可以根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包。
72.举例来说,上述上下文信息可以包括但不限于以下内容:
73.本地系统名称、本地系统版本号、本地ide名称、本地ide版本号,以及其他本地环境信息。
74.上述调试配置文件中的上下文信息(context)对应的伪代码可以如下所示:
[0075][0076][0077]
继续举例,云端在获取到调试配置文件之后,可以根据调试配置文件中的上下文信息,确定本地系统名称和版本号、本地ide名称和版本号,以及本地其他环境信息,从而可以在云端构建代码运行环境,使得云端构建的代码运行环境可以复现用户本地的集成开发环境。进一步的,云端可以在构建出的代码运行环境中,导入二进制包对应的源码包。
[0078]
在示出的一种实施方式中,所述调试配置文件还包括代码库标识;
[0079]
进一步的,云端还可以根据所述代码库标识,查询所述云端本地存储的至少一个代码库对应的打包配置文件,确定出与所述代码库标识相匹配的目标代码库对应的打包配置文件;其中,所述打包配置文件至少包括所述代码库的标识和所述二进制包对应的源码包的路径。
[0080]
例如,上述代码库的标识,可以是代码库的名称,并且由于同一代码库可能有不同的版本,代码库的版本号也可以作为代码库的标识。
[0081]
以代码库名称为a,版本号为1.0.1为例,在调试配置文件中,代码库标识对应的伪代码可以是:
[0082]
"libname":"库a",
[0083]
"libversion":"1.0.1"。
[0084]
上述打包配置文件可以是在代码库功能开发完成之后,在对代码库进行编译打包生成二进制包的同时,生成打包配置文件,并将该打包配置文件上传至云端存储。
[0085]
其中,打包配置文件可以至少包括包名、版本号、源码包的路径、二进制包的路径等。
[0086]
另外,上述源码包的路径和二进制包的路径,可以是用户存储在本地的路径,也可以是用户上传至云端后,存储在云端的路径,本说明书对此不做限定。
[0087]
以代码库名称为a,版本号为1.0.1为例,在打包配置文件中,伪代码可以是:
[0088]
"libname":"库a",
[0089]
"libversion":"1.0.1,
[0090]
"libbinaryurl":"二进制包路径",
[0091]
"libsourceurl":"源码包路径"。
[0092]
继续举例,云端可以根据调试配置文件中的代码库标识,比如“库a”和“1.0.1”,查
询云端本地存储的各个代码库对应的打包配置文件,确定出与调试配置文件中的代码库标识相匹配的打包配置文件,从而确定出打包配置文件中的源码包的路径。
[0093]
在示出的一种实施方式中,云端可以基于所述目标代码库对应的打包配置文件中的所述二进制包对应的源码包的路径,将所述二进制包对应的源码包导入所述代码运行环境。
[0094]
例如,云端在确定出目标代码库对应的打包配置文件后,可以根据打包配置文件中的二进制包对应的源码包的路径,获取到源码包,并将源码包导入代码运行环境。
[0095]
步骤103,响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。
[0096]
在本实施例中,云端可以响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。
[0097]
例如,云端在获取到调试配置文件中的调试信息之后,可以开启断点调试功能,并通过用户本地的集成开发环境中的图形界面输出调试界面,用户可以在本地对调试界面进行调试操作,根据调试信息来完成调试。
[0098]
在示出的一种实施方式中,云端可以响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,并通过所述调试界面实时显示所述调试信息;其中,所述调试信息至少包括待调试的文件名、方法名和断点所在的行数。
[0099]
例如,上述调试信息可以至少包括待调试的文件名、方法名和断点所在的行数。
[0100]
以代码库名称为a、版本号为1.0.1、待调试的文件名为neconfig.m、方法名为getconfig、断点所在的行数为99为例,调试配置文件中调试信息(debuginfolist)的伪代码可以如下:
[0101][0102]
举例来说,云端在获取到调试配置文件中的调试信息之后,可以开启断点调试功能,同时,云端可以通过用户本地的集成开发环境中的图形界面输出调试界面,实现云端调试界面和本地调试界面的同步,并在调试界面中显示待调试的文件名、方法名和断点所在
的行数等调试信息,便于用户基于本地的调试界面进行调试操作。
[0103]
在示出的一种实施方式中,云端还可以响应于所述用户通过所述调试界面进行调试操作,在所述代码运行环境中执行所述调试操作,并将调试结果通过所述调试界面反馈给用户。
[0104]
以图2为例,图2是一示例性实施例提供的一种二进制包的云端调试方法的场景示意图。如图2所示,所述方法包括以下步骤:
[0105]
s201,用户可以在本地的集成开发环境中的图形界面上进行开发,当运行的项目接入的代码库中的二进制包触发异常断点时,可以生成调试配置文件,并上传至云端。
[0106]
s202,云端可以根据调试配置文件中的上下文信息,构建与用户本地的集成开发环境相同的代码运行环境,并在构建出的代码运行环境中,导入与二进制包对应的源码包。
[0107]
s203,云端可以响应于获取到的调试信息,开启断点调试功能,在云端的图形界面中显示调试界面,并通过在用户本地的集成开发环境中的图形界面输出该调试界面,实现调试界面的实时传递。
[0108]
s204,当用户在本地通过调试界面进行调试操作时,云端可以实时响应调试操作,并将调试结果通过调试界面反馈给用户。
[0109]
在示出的一种实施方式中,云端还可以接收所述用户本地的集成开发环境发起的调试申请,创建与所述调试申请对应的进程,并通过所述进程获取用户本地的集成开发环境中生成的调试配置文件。
[0110]
例如,当用户需要同时对多个项目进行调试,或者有多个用户需要进行调试时,云端可以根据接收到的调试申请,创建与各个调试申请分别对应的进程,并通过为调试申请创建的进程获取调试申请的发起方本地的集成开发环境中生成的调试配置文件。
[0111]
在示出的一种实施方式中,云端可以接收由不同用户本地的集成开发环境发起的至少一个调试申请,创建与每个调试申请一一对应的独立进程;以及,可以通过所述用户本地的集成开发环境中的图形界面,输出与所述独立进程对应的调试界面。
[0112]
需要说明的是,通过创建独立的进程,可以保证进程之间是相互独立的,不会相互干扰,每个进程独立负责一个调试任务,保证多个任务可以同时进行,并且彼此之间不会产生冲突。
[0113]
以图3为例,图3是一示例性实施例提供的一种二进制包的云端调试方法的示意图。如图3所示,云端可以接收用户a、用户b和用户c分别对应的本地的集成开发环境发起的调试申请,并为用户a、用户b和用户c分别创建一一对应的独立进程,比如用户a的调试申请对应了进程1、用户b的调试申请对应了进程2,用户c的调试申请对应了进程3。
[0114]
然后,云端可以通过用户本地的集成开发环境的图形界面,输出与独立进程对应的调试界面,比如用户a的本地的集成开发环境的图形界面中输出与进程1对应的调试界面1,用户b的本地的集成开发环境的图形界面中输出与进程2对应的调试界面2,用户c的本地的集成开发环境的图形界面中输出与进程3对应的调试界面3。
[0115]
通过以上技术方案,将本地集成开发环境中的上下文信息和调试信息同步到云端,由云端构建与本地集成开发环境相同的代码运行环境,并导入二进制包对应的源码包,通过本地集成开发环境输出调试界面,将断点调试无缝转移到云端进行。在上述过程中,一方面,将源码包导入到云端,取代下载至本地,不仅保护了源码包的安全,还节约了本地的
存储资源;另一方面,在云端进行调试,不仅更加方便快捷,还通过调试界面保证了和本地的实时交互。
[0116]
为了使本领域技术人员更好地理解本公开示出的实施例,接下来结合图4进行举例说明。图4是一示例性实施例提供的一种二进制包的云端调试方法的交互示意图,所述方法包括以下步骤:
[0117]
s401,用户启动本地的集成开发环境。
[0118]
s402,本地的集成开发环境发起通信连接请求。
[0119]
s403,云端响应于通信连接请求,建立和用户本地的集成开发环境的通信连接。
[0120]
s404,本地的集成开发环境生成打包配置文件。
[0121]
s405,本地的集成开发环境将打包配置文件上传至云端存储。
[0122]
s406,用户运行本地的项目。
[0123]
其中,该项目中接入了代码库中已经编译完成的二进制包。
[0124]
s407,本地的集成开发环境响应于用户本地的项目在运行时触发了异常断点,生成调试配置文件。
[0125]
s408,本地的集成开发环境发起调试申请。
[0126]
s409,云端创建与调试申请对应的独立进程。
[0127]
s410,云端的独立进程获取调试配置文件。
[0128]
s411,云端的独立进程根据调试配置文件中的上下文信息,构建与用户本地的集成开发环境相同的代码运行环境。
[0129]
s412,云端的独立进程根据调试配置文件中的代码库标识,查询云端本地存储的至少一个代码库对应的打包配置文件,确定出与代码库标识相匹配的目标代码库对应的打包配置文件,获取打包配置文件中的源码包的路径。
[0130]
s413,云端的独立进程基于源码包的路径,将源码包导入代码运行环境。
[0131]
s414,云端的独立进程响应于获取到的调试信息,开启断点调试功能,将云端的调试界面实时传递到用户本地的集成开发环境的图形界面中,并通过调试界面实时显示调试信息。
[0132]
其中,调试信息至少包括待调试的文件名、方法名和断点所在的行数。
[0133]
s415,用户通过本地的集成开发环境的图形界面中的调试界面,进行调试操作。
[0134]
s416,云端的独立进程响应于用户的调试操作,在代码运行环境中执行调试操作。
[0135]
s417,云端的独立进程将调试结果通过调试界面反馈给用户。
[0136]
s418,用户完成调试,关闭界面,结束云端调试。
[0137]
s419,云端对与完成的调试任务对应的独立进程进行清理。
[0138]
上述各个步骤的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0139]
通过以上技术方案,将本地集成开发环境中的上下文信息和调试信息同步到云端,由云端构建与本地集成开发环境相同的代码运行环境,并导入二进制包对应的源码包,通过本地集成开发环境输出调试界面,将断点调试无缝转移到云端进行。在上述过程中,一方面,将源码包导入到云端,取代下载至本地,不仅保护了源码包的安全,还节约了本地的存储资源;另一方面,在云端进行调试,不仅更加方便快捷,还通过调试界面保证了和本地
的实时交互。
[0140]
示例性装置
[0141]
在介绍了本公开示例性实施方式的方法之后,接下来,请参见图5,图5是一示例性实施例提供的一种二进制包的云端调试装置的框图。
[0142]
下述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
[0143]
如图5所示,二进制包的云端调试装置500,可以包括:
[0144]
获取模块501,获取用户本地的集成开发环境中生成的调试配置文件;其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包;
[0145]
构建模块502,根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包;
[0146]
输出模块503,响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。
[0147]
在一实施例中,所述调试配置文件还包括代码库标识;
[0148]
进一步的,所述装置500,还包括:
[0149]
查询模块504,根据所述代码库标识,查询所述云端本地存储的至少一个代码库对应的打包配置文件,确定出与所述代码库标识相匹配的目标代码库对应的打包配置文件;其中,所述打包配置文件至少包括所述代码库的标识和所述二进制包对应的源码包的路径。
[0150]
在一实施例中,所述构建模块502,进一步:
[0151]
基于所述目标代码库对应的打包配置文件中的所述二进制包对应的源码包的路径,将所述二进制包对应的源码包导入所述代码运行环境。
[0152]
在一实施例中,所述输出模块503,进一步:
[0153]
响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,并通过所述调试界面实时显示所述调试信息;其中,所述调试信息至少包括待调试的文件名、方法名和断点所在的行数。
[0154]
在一实施例中,所述装置500,还包括:
[0155]
调试模块505,响应于所述用户通过所述调试界面进行调试操作,在所述代码运行环境中执行所述调试操作,并将调试结果通过所述调试界面反馈给用户。
[0156]
在一实施例中,所述装置500,还包括:
[0157]
连接模块506,接收所述用户本地的集成开发环境响应于用户的启动指令发起的通信连接请求,建立和所述用户本地的集成开发环境的通信连接。
[0158]
在一实施例中,所述装置500,还包括:
[0159]
进程模块507,接收所述用户本地的集成开发环境发起的调试申请,创建与所述调试申请对应的进程,并通过所述进程获取用户本地的集成开发环境中生成的调试配置文
件。
[0160]
在一实施例中,所述进程模块507,进一步:
[0161]
接收由不同用户本地的集成开发环境发起的至少一个调试申请,创建与每个调试申请一一对应的独立进程;
[0162]
所述输出模块503,进一步:
[0163]
通过所述用户本地的集成开发环境中的图形界面,输出与所述独立进程对应的调试界面。
[0164]
上述二进制包的云端调试装置500的各个模块的具体细节已经在之前描述二进制包的云端调试方法流程中进行了详细的描述,因此,此处不再赘述。
[0165]
应当注意,尽管在上文详细描述中提及二进制包的云端调试装置500的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0166]
示例性介质
[0167]
在介绍了本公开示例性实施方式的装置之后,接下来,请参见图6,图6是一示例性实施例提供的一种二进制包的云端调试介质的示意图。
[0168]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
[0169]
参考图6所示,描述了根据本公开的实施例的用于实现上述方法的可读存储介质600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的可读存储介质不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0170]
所述可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0171]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0172]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0173]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0174]
示例性计算设备
[0175]
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,请参见图7,图7是一示例性实施例提供的一种能够实现上述方法的电子设备的示意图。
[0176]
下面参照图7来描述根据本公开的这种实施例的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0177]
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
[0178]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元701执行,使得所述处理单元701执行本说明书上述各种实施例的步骤。
[0179]
存储单元702可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)7021和/或高速缓存存储单元7022,还可以进一步包括只读存储单元(rom)7023。
[0180]
存储单元702还可以包括具有一组(至少一个)程序模块7025的程序/使用工具7024,这样的程序模块7025包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包含网络环境的现实。
[0181]
总线703可以包括控制总线、地址总线和数据总线。
[0182]
电子设备700也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信。这种通信可以通过输入/输出(i/o)接口705进行。并且,电子设备700还可以通过网络适配器706与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0183]
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
[0184]
应当注意,尽管在上文详细描述中提及了装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0185]
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0186]
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

技术特征:
1.一种二进制包的云端调试方法,应用于云端,包括:获取用户本地的集成开发环境中生成的调试配置文件;其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包;根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包;响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。2.根据权利要求1所述的方法,所述调试配置文件还包括代码库标识;在导入所述二进制包对应的源码包之前,所述方法还包括:根据所述代码库标识,查询所述云端本地存储的至少一个代码库对应的打包配置文件,确定出与所述代码库标识相匹配的目标代码库对应的打包配置文件;其中,所述打包配置文件至少包括所述代码库的标识和所述二进制包对应的源码包的路径。3.根据权利要求1所述的方法,所述响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,包括:响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,并通过所述调试界面实时显示所述调试信息;其中,所述调试信息至少包括待调试的文件名、方法名和断点所在的行数。4.根据权利要求1所述的方法,所述方法还包括:响应于所述用户通过所述调试界面进行调试操作,在所述代码运行环境中执行所述调试操作,并将调试结果通过所述调试界面反馈给用户。5.根据权利要求1所述的方法,在获取用户本地的集成开发环境中生成的调试配置文件之前,所述方法还包括:接收所述用户本地的集成开发环境响应于用户的启动指令发起的通信连接请求,建立和所述用户本地的集成开发环境的通信连接。6.根据权利要求1所述的方法,在获取用户本地的集成开发环境中生成的调试配置文件之前,所述方法还包括:接收所述用户本地的集成开发环境发起的调试申请,创建与所述调试申请对应的进程,并通过所述进程获取用户本地的集成开发环境中生成的调试配置文件。7.根据权利要求6所述的方法,所述接收所述用户本地的集成开发环境发起的调试申请,创建与所述调试申请对应的进程,包括:接收由不同用户本地的集成开发环境发起的至少一个调试申请,创建与每个调试申请一一对应的独立进程;所述通过所述用户本地的集成开发环境中的图形界面输出调试界面,包括:通过所述用户本地的集成开发环境中的图形界面,输出与所述独立进程对应的调试界面。8.一种二进制包的云端调试装置,应用于云端,包括:获取模块,获取用户本地的集成开发环境中生成的调试配置文件;其中,所述调试配置文件由所述集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;所述调试
配置文件至少包括上下文信息和调试信息;所述项目中接入了代码库中已经编译完成的二进制包;构建模块,根据所述上下文信息,构建与所述用户本地的集成开发环境相同的代码运行环境,并在构建出的所述代码运行环境中,导入所述二进制包对应的源码包;输出模块,响应于获取到的调试信息,开启断点调试功能,通过所述用户本地的集成开发环境中的图形界面输出调试界面,以使所述用户基于所述调试界面进行调试操作。9.一种存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。10.一种计算设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。

技术总结
本公开的实施方式提供了一种二进制包的云端调试方法,应用于云端,包括:获取用户本地的集成开发环境中生成的调试配置文件;其中,调试配置文件由集成开发环境响应于用户本地的项目在运行时触发了异常断点生成;调试配置文件至少包括上下文信息和调试信息;项目中接入了代码库中已经编译完成的二进制包;根据上下文信息,构建与用户本地的集成开发环境相同的代码运行环境,并在构建出的代码运行环境中,导入二进制包对应的源码包;响应于获取到的调试信息,开启断点调试功能,通过用户本地的集成开发环境中的图形界面输出调试界面,以使用户基于调试界面进行调试操作。源码存在云端,既安全,又节约本地存储资源;在云端调试,方便快捷。方便快捷。方便快捷。


技术研发人员:朋学良 刘庆生 余洋 熊旭 江振源 林仁华
受保护的技术使用者:网易宝有限公司
技术研发日:2023.04.18
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐