CN111782530B - 一种远程调试方法、装置、系统、电子设备及存储介质 - Google Patents
一种远程调试方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111782530B CN111782530B CN202010623220.5A CN202010623220A CN111782530B CN 111782530 B CN111782530 B CN 111782530B CN 202010623220 A CN202010623220 A CN 202010623220A CN 111782530 B CN111782530 B CN 111782530B
- Authority
- CN
- China
- Prior art keywords
- debugging
- debug
- target interface
- sequence
- information
- 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
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/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开的一种远程调试方法、装置、系统、电子设备及存储介质属于应用程序调试技术领域,该方法包括:根据接收的远程调试请求确定调试信息;根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果;将所述调试结果反馈至所述远程调试请求对应的请求方。本申请解决了开发过程中调试终端进行远程协作时,无法进行远程调试的技术问题,并且本申请提供的方法可以直接远程调用应用程序,提高了在协同开发过程中的开发效率。
Description
技术领域
本申请涉及应用程序调试技术领域,尤其涉及一种远程调试方法、装置、系统、电子设备及存储介质。
背景技术
随着移动端产品功能的快速迭代,传统的应用程序调试方法耗时较长,并且和测试人员的沟通成本较高,目前在开发测试阶段,发明人发现,对于复杂或者用户量较高的应用程序会产生远程调试,因为在不同机型、系统、用户场景下的执行结果不同,对于一些特定系统/用户出现的BUG难以定位和调试,对于上述问题,现有技术中通常需要调试终端通过USB与安装有待调试应用程序的客户端连接后,才能进行调试,并且在开发过程中与其他终端进行远程协作时,无法进行远程调试,导致开发效率低下。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种远程调试方法、装置、系统、电子设备及存储介质。
根据本申请实施例的一个方面,提供了一种远程调试方法,包括:
根据接收的远程调试请求确定调试信息;
根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果;
将所述调试结果反馈至所述远程调试请求对应的请求方。
进一步的,所述调试信息包括:接口地址和调试命令;
所述根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果,包括:
根据所述接口地址确定待调试应用程序的目标接口;
根据所述调试命令控制所述目标接口执行相应的调试操作。
进一步的,所述控制所述目标接口执行相应的调试操作得到调试结果,包括:
对所述调试命令进行解析得到序列信息;
根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果;
其中,所述序列信息包括:调用序列或修改序列。
进一步的,所述根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果,包括:
获取所述目标接口的原生代码,根据所述调用序列控制所述目标接口执行所述原生代码得到调试结果;
或,
所述根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作,还包括:
获取所述目标接口的原生代码,以及所述修改序列中携带的目标代码;
将所述原生代码修改为所述目标代码,并控制所述目标接口执行所述目标代码得到调试结果。
进一步的,在所述根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果之前,所述方法还包括:
基于所述调试命令查询所述序列信息关联的方法签名;
当所述方法签名满足预设条件时,根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果。
进一步的,所述将所述调试结果反馈至所述远程调试请求对应的请求方,包括:
确定所述调试结果的调试类型;
当所述调试类型属于指定类型时,对所述调试结果与所述调试结果对应的序列信息进行压缩得到执行信息;
将所述执行信息发送至所述请求方。
根据本申请实施例的另一方面,还提供了一种远程调试装置,包括:
确定模块,用于根据接收的远程调试请求确定调试信息;
调试模块,用于根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果;
将所述调试结果反馈至所述远程调试请求对应的请求方。
根据本申请实施例的另一方面,还提供了一种远程调试系统,包括:请求方和客户端;
所述请求方根据获取的调试需求信息生成远程调试请求,并将所述远程调试请求发送至所述客户端;
所述客户端根据接收的远程调试请求确定调试信息,根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果,将所述调试结果反馈至所述请求方。根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一方面,还提供了一种电子装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请解决了开发过程中调试终端进行远程协作时,无法进行远程调试的技术问题,并且本申请提供的方法可以直接远程调用应用程序,提高了在协同开发过程中的开发效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种远程调试系统的框图;
图2为本申请实施例提供的远程连接方式的示意图;
图3为本申请实施例提供的请求方下发的调试命令示意图;
图4为本申请实施例提供的一种远程调试方法的流程图;
图5为本申请另一实施例提供的一种远程调试方法的流程图;
图6为本申请实施例提供的一种远程调试装置的框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请实施例提供了一种远程调试方法、装置、系统、电子设备及存储介质。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
下面首先对本发明实施例所提供的一种远程调试系统进行介绍。
图1为本申请实施例提供的一种远程调试系统的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图1所示,该系统包括:请求方100和客户端200;
请求方100根据获取的调试需求信息生成远程调试请求,并将远程调试请求发送至所述客户端。
可以理解的,调试需求信息可以是由工作人员输入或者上传获得,在本实施例中,请求方通过bind(int sockfd,const struct sockaddr*addr,socklen_taddrlen)函数来连接客户端应用程序的相关信息。具体的可以通过客户端的IP和客户端的端口号可以建立连接,或者图2为本申请实施例提供的远程连接方式的示意图,如图2所示,可以打开客户端扫描二维码传递相关信息也能进行连接。当请求方与客户端建立连接后,向客户端发送远程调试请求。
作为一个示例,图3为本申请实施例提供的请求方下发的调试命令示意图,如图3所示,远程调试请求是由执行脚本实现。
客户端200根据接收的远程调试请求确定调试信息,根据调试信息确定待调试应用程序的目标接口,并控制目标接口执行相应的调试操作得到调试结果,将调试结果反馈至所述请求方。
在上述实施方式中,请求方可以通过HTTP协议将调试请求发送给客户端,以便实现对客户端的远程调试,而无需预先设定特定的调试接口也无需安装相应的程序,从而解决了现有技术中在通过请求方对目标主机进行远程调试时,需要在请求方中增加额外的远程调试接口而造成的远程调试过程复杂的技术问题,达到了在无需增加额外的调试接口就能实现对目标机的远程调试的目的,提高了远程调试的效率和灵活性。
本发明的原理可以使用其它通用或专用计算或通信环境或配置来操作。适用于本发明的众所周知的计算系统、环境和配置的示例包括但不限于,个人计算机、服务器,多处理器系统、基于微处理的系统、小型机、大型计算机、以及包括任一上述系统或设备的分布式计算环境。
在实现本实施例的过程中,发明人还发现远程的运行有该应用程序的客户端可能处于各种各样的场景中,例如包含有Wi-Fi信号的强弱、移动信号的强弱、温度高低等等影响因素的场景,而该应用程序出现问题的原因很可能与这些场景的各种影响因素有关,例如,该应用程序发生应用程序无响应或者应用程序运行出错退出crash等问题可能与温度高低有关。
但是,工作人员并不能将各种各样的场景都成功的在本地进行定位,所以,对于不能在本地定位的场景,工作人员很难对该场景中应用程序出现的问题进行定位调试,也很难解决用户反馈的使用该应用程序过程中出现的问题,从而降低了用户对该应用程序的使用体验,最终导致该应用程序的用户量减少。
为此,本申请一实施例提供了一种远程调试方法,应用于请求方,如图4所示,该方法包括:
步骤S11、建立与运行有待调试应用程序的客户端的远程通信连接;
步骤S12、获取客户端的客户端信息;
步骤S13、根据客户端信息确定用于调试待调试应用程序的调试信息。
本发明实施例中,在确定运行有待调试应用程序的客户端后,首先获取客户端的客户端信息,客户端信息可以包括客户端终端的品牌、厂商、型号、电子串号等用于描述客户端的信息。建立远程通信连接后,当存在调试需求时,请求方向客户端发送查询请求,客户端根据查询请求将客户端信息上报至请求方,以便请求方根据客户端信息确定用于调试待调试应用程序的调试信息。
为了实现工作人员对待调试应用程序的远程调试,本申请实施例建立请求方与客户端的远程通信连接。在远程通讯连接的基础上,开发者可以对客户端进行远程控制,同时能够对客户端上运行的应用程序进行远程调试,解决了多种场景都不能成功的在本地进行定位,并且复现的问题。
作为一个示例,客户端可以在获取到请求方发送的地址后,启动一个TCP连接到请求方,并使用由JBOSS提供的一个java开源框架,即netty框架与请求方进行通信。
实际应用中,请求方可以首先建立各个客户端信息对应的调试功能。在请求方接收到上报的客户端信息后,根据调试功能确定客户端信息对应的调试信息。
作为一个示例,客户端A用于调试某应用程序的X1功能,客户端B用于调试某应用程序的X2功能,客户端B用于调试某应用程序的X3功能,当有调试需求时,获取各个客户端上报的客户端信息后,根据客户端信息确定该客户端对应他调试功能,同时生成相应调试信息,并发往相应的客户端。
此外,本申请实施例还可以基于远程通讯连接,建立与请求方的调试通道,其中,调试通道与客户端具有对应关系。
本申请实施例中,在建立远程通讯连接后,基于远程通讯连接,建立用于对待调试应用程序进行调试的调试通道。实际操作中,工作人员能够通过建立的调试通道对待调试应用程序进行远程调试。
值得注意的是,本发明实施例中的调试通道与客户端之间具有一一对应的关系,也就是说,请求方通过一个调试通道只能对调试通道对应的客户端上的待调试应用程序进行调试。可以理解的是,如果请求方与多台客户端链接时,需要为各个客户端分别建立远程通讯连接,以及分别基于各个远程通讯连接的调试通道。
图5为本申请实施例提供的一种远程调试方法的流程图。如图5所示,该方法应用于客户端,包括:
步骤S21,根据接收的远程调试请求确定调试信息;
远程调试:当运行的程序出现问题时,通常通过调试来追踪和定位问题。
具体而言,当被调试的应用程序运行错误时,可以通过此远程调试,跟踪记录应用程序每一步的运行情况和每一步的执行结果,并获取到运行时详细的数据。以往应用程序出现问题,只能通过此其所在的客户端上报的日志来排查,日志往往数据量偏少,很难通过日志来复现场景。当运行错误的机器上没有在本地时,就需要实现远程调试。
步骤S22,根据调试信息确定待调试应用程序的目标接口,并控制目标接口执行相应的调试操作得到调试结果;
本步骤中的调试信息包括:接口地址和调试命令;其中,根据接口地址可以确定待调试应用程序的目标接口,根据调试命令控制目标接口执行相应的调试操作。可以理解的,本实施例中的接口地址中携带待调试应用程序的地址,以及待调用应用程序的目标接口的接口名称,调试命令则用于控制目标接口执行相应的调试操作。
在本实施例中,方法还包括:基于调试命令查询所述序列信息关联的方法签名,当方法签名满足预设条件时,根据序列信息控制目标接口执行与序列信息相应的调试操作得到调试结果。其中,方法签名包括:方法的名称和参数类型,方法签名满足预设条件,方法名称为指定方法名称,以及参数类型正确。可以理解的,当调用接口时,如果有方法名称或者参数类型不正确时,无法根据序列信息进行调试操作。
在本实施例中,控制目标接口执行相应的调试操作得到调试结果,包括:对调试命令进行解析得到序列信息;根据序列信息控制目标接口执行与序列信息相应的调试操作得到调试结果;其中,序列信息包括:调用序列或修改序列。
可选的,当序列信息仅包括调用序列时,根据序列信息控制目标接口执行与序列信息相应的调试操作得到调试结果,包括:获取目标接口的原生代码,根据调用序列调用目标接口执行原生代码得到调试结果。
具体来说,当序列信息仅包括调用序列时,客户端在根据调用迅序列在调用应用程序的目标接口时,将目标接口的接口名称传递给应用程序,并基于反射机制直接调用目标接口执行原生代码,可以理解的,反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为语言的反射机制。反射被视为动态语言的关键。
可选的,当序列信息仅包括调用序列时,根据序列信息控制目标接口执行与序列信息相应的调试操作得到调试结果,还包括:获取目标接口的原生代码,以及修改序列中携带的目标代码,将原生代码修改为目标代码,调用目标接口执行目标代码得到调试结果。
具体来说,当序列信息仅包括修改序列时,客户端会获取修改序列中会携带目标代码,并采用hook机制,将目标代码传递到应用程序中,并将目标接口的原生代码替换为目标代码。
可以理解的,hook机制它可以在事件传送的过程中截获并监控事件的传输,将自身的代码与系统方法进行融入。这样当这些方法被调用时,也就可以执行我们自己的代码。
作为一个示例,使用Hook机制修改View.On Click Listener事件。首先分析View.set On Click Listener源码,找出合适的Hook点。通过分析可以知道On ClickListener对象被保存在了一个叫做Listener Info的内部类里,其中m Listener Info是View的成员变量。Listener Info里面保存了View的各种监听事件。因此,我们可以想办法hook Listener Info的m On Click Listener。
第一步:获取Listener Info对象。基于源代码可以通过get Listener Info方法获取,具体的,可以利用反射机制得到Listener Info对象。第二步:获取原始的On ClickListener事件方法。具体的,客户端可以通过反射机制确定On Click Listener事件被保存在Listener Info中。第三步:采用Hook代理类替换原始的On Click Listener。
步骤S24,将调试结果反馈至远程调试请求对应的请求方。
在本步骤中,首先确定调试结果的调试类型,当调试类型属于指定类型时,对所述调试结果与所述调试结果对应的序列信息进行压缩得到执行信息,将所述执行信息发送至所述请求方。
可以理解的,调试类型可以是常规类型和指定类型,例如:执行页面加载或者清理内存等调试命令得到的调试结果属于常规类型。而执行BUG调试等调试命令得到调试结果属于指定类型,因为某些BUG在调试后输出的日志信息需要分析,所以需要将调试结果与序列信息打包发送至请求方。
在本申请的另一个实施例中,为了保证调试的安全性,可以限定每个客户端只能对特定的接口进行调试。为了实现上述目的,可以预先设定允许被调试的调试接口的集合,只有调试请求的调试接口在该集合内,才会触发相应的调试操作。
另外,不仅可以对调试接口进行限定,也可以对调试命令进行限定,如果在调试请求中携带的调试命令是被禁止的指令,则返回调试失败,从而有效避免了相关技术中在调试过程中有一些调试命令可能会对目标机的环境产生影响而造成的调试出现故障的问题。
本申请上述实施例公开方法解决了开发过程中调试终端进行远程协作时,无法进行远程调试的技术问题,并且本申请提供的方法可以直接远程调用应用程序,提高了在协同开发过程中的开发效率。
图6为本申请实施例提供的一种远程调试装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,该装置包括:
确定模块61,用于根据接收的远程调试请求确定调试信息;
调试模块62,用于根据调试信息确定待调试应用程序的目标接口,并控制目标接口执行相应的调试操作得到调试结果;
发送模块63,用于将调试结果反馈至远程调试请求对应的请求方。
在本实施例中,调试信息包括:接口地址和调试命令;其中,调试模块62,包括:
分析模块,用于根据接口地址确定待调试应用程序,以及待调试应用程序的目标接口;
执行模块,用于根据调试命令控制目标接口执行相应的调试操作。
本实施例中的分析模块,还用于对接口地址进行解析;当接口地址携带指定方法签名时,根据执行信息确定待调试应用程序,以及待调试应用程序的目标接口。
本实施例中的执行模块,包括:
解析子模块,用于对调试命令进行解析得到序列信息;
控制子模块,用于根据序列信息控制目标接口执行与序列信息相应的调试操作得到调试结果;其中,序列信息包括:调用序列或修改序列。
本实施例中的控制子模块,具体用于获取目标接口的原生代码,根据调用序列调用目标接口执行原生代码得到调试结果。
或,
控制子模块,还具体用于获取目标接口的原生代码,根据修改序列确定目标代码;将原生代码修改为目标代码;调用目标接口执行目标代码得到调试结果。
本实施例中的发送模块,具体用于确定调试结果的调试类型;当调试类型属于指定类型时,对调试结果与调试结果对应的序列信息进行压缩得到执行信息;将执行信息发送至请求方。
本申请实施例还提供一种电子设备,如图7所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的远程调试方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的远程调试方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种远程调试方法,其特征在于,包括:
根据接收的远程调试请求确定调试信息,所述调试信息包括:接口地址和调试命令;
根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果,包括:根据所述接口地址确定待调试应用程序的目标接口;对所述调试命令进行解析得到序列信息;根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果;其中,所述序列信息包括:调用序列或修改序列,所述调用序列用于执行原生代码,所述修改序列用于修改所述原生代码;
将所述调试结果反馈至所述远程调试请求对应的请求方。
2.根据权利要求1所述的方法,其特征在于,所述根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果,包括:
获取所述目标接口的原生代码,根据所述调用序列控制所述目标接口执行所述原生代码得到调试结果;
或,
所述根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作,还包括:
获取所述目标接口的原生代码,以及所述修改序列中携带的目标代码;
将所述原生代码修改为所述目标代码,并控制所述目标接口执行所述目标代码得到调试结果。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果之前,所述方法还包括:
基于所述调试命令查询所述序列信息关联的方法签名;
当所述方法签名满足预设条件时,根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果。
4.根据权利要求2所述的方法,其特征在于,所述将所述调试结果反馈至所述远程调试请求对应的请求方,包括:
确定所述调试结果的调试类型;
当所述调试类型属于指定类型时,对所述调试结果与所述调试结果对应的序列信息进行压缩得到执行信息;
将所述执行信息发送至所述请求方。
5.一种远程调试装置,其特征在于,包括:
确定模块,用于根据接收的远程调试请求确定调试信息,所述调试信息包括:接口地址和调试命令;
调试模块,用于根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果,包括:根据所述接口地址确定待调试应用程序的目标接口;对所述调试命令进行解析得到序列信息;根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果;其中,所述序列信息包括:调用序列或修改序列,所述调用序列用于执行原生代码,所述修改序列用于修改所述原生代码;
将所述调试结果反馈至所述远程调试请求对应的请求方。
6.一种远程调试系统,其特征在于,包括:请求方和客户端;
所述请求方根据获取的调试需求信息生成远程调试请求,并将所述远程调试请求发送至所述客户端;
所述客户端根据接收的远程调试请求确定调试信息,根据所述调试信息确定待调试应用程序的目标接口,并控制所述目标接口执行相应的调试操作得到调试结果,将所述调试结果反馈至所述请求方,所述调试信息包括:接口地址和调试命令,具体包括:根据所述接口地址确定待调试应用程序的目标接口;对所述调试命令进行解析得到序列信息;根据所述序列信息控制所述目标接口执行与所述序列信息相应的调试操作得到调试结果;其中,所述序列信息包括:调用序列或修改序列,所述调用序列用于执行原生代码,所述修改序列用于修改所述原生代码。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至4中任一项所述的方法步骤。
8.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:
存储器,用于存放计算机程序;
处理器,用于通过运行存储器上所存放的程序来执行权利要求1-4中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010623220.5A CN111782530B (zh) | 2020-06-30 | 2020-06-30 | 一种远程调试方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010623220.5A CN111782530B (zh) | 2020-06-30 | 2020-06-30 | 一种远程调试方法、装置、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782530A CN111782530A (zh) | 2020-10-16 |
CN111782530B true CN111782530B (zh) | 2023-10-10 |
Family
ID=72761620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010623220.5A Active CN111782530B (zh) | 2020-06-30 | 2020-06-30 | 一种远程调试方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782530B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113176953B (zh) * | 2021-04-21 | 2024-08-06 | 北京锐达仪表有限公司 | 现场调试终端、仪表远程调试系统、仪表调试方法及可读存储介质 |
CN113722236B (zh) * | 2021-09-18 | 2023-08-08 | 网易(杭州)网络有限公司 | 游戏调试方法、装置、设备、存储介质 |
CN113961458A (zh) * | 2021-10-22 | 2022-01-21 | 北京字节跳动网络技术有限公司 | 远程接口调试方法、装置、存储介质、电子设备及系统 |
CN114546823B (zh) * | 2021-12-27 | 2023-09-12 | 芯华章科技股份有限公司 | 用于重现逻辑系统设计的调试场景的方法及相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650967A (zh) * | 2011-02-24 | 2012-08-29 | 上海宝信软件股份有限公司 | 分布式信息系统的集中式远程调试方法 |
CN103684899A (zh) * | 2012-09-17 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 远程调试方法和装置 |
CN107678938A (zh) * | 2017-08-24 | 2018-02-09 | 阿里巴巴集团控股有限公司 | 一种应用程序的调试方法及设备 |
CN108345533A (zh) * | 2017-01-24 | 2018-07-31 | 腾讯科技(深圳)有限公司 | 一种应用程序调试方法、设备及服务器 |
CN109344065A (zh) * | 2018-09-27 | 2019-02-15 | 迈普通信技术股份有限公司 | 远程调试方法、调试服务器及目标机 |
CN110704321A (zh) * | 2019-09-27 | 2020-01-17 | 京东数字科技控股有限公司 | 程序调试方法和装置 |
CN110879781A (zh) * | 2019-11-06 | 2020-03-13 | 北京奇艺世纪科技有限公司 | 程序调试方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216895A1 (en) * | 2004-03-23 | 2005-09-29 | Tran Hieu T | Method and apparatus for remote debugging of kernel and application software |
US20060174225A1 (en) * | 2005-02-01 | 2006-08-03 | International Business Machines Corporation | Debugging a High Level Language Program Operating Through a Runtime Engine |
KR101060181B1 (ko) * | 2009-08-03 | 2011-08-29 | 강원대학교산학협력단 | 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법 |
US8752017B2 (en) * | 2010-05-17 | 2014-06-10 | Salesforce.Com, Inc. | Method and system for remote debug protocol proxying for production debugging; selective session and user routing for debugging in multi-tenant cloud computing infrastructure |
-
2020
- 2020-06-30 CN CN202010623220.5A patent/CN111782530B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650967A (zh) * | 2011-02-24 | 2012-08-29 | 上海宝信软件股份有限公司 | 分布式信息系统的集中式远程调试方法 |
CN103684899A (zh) * | 2012-09-17 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 远程调试方法和装置 |
CN108345533A (zh) * | 2017-01-24 | 2018-07-31 | 腾讯科技(深圳)有限公司 | 一种应用程序调试方法、设备及服务器 |
CN107678938A (zh) * | 2017-08-24 | 2018-02-09 | 阿里巴巴集团控股有限公司 | 一种应用程序的调试方法及设备 |
CN109344065A (zh) * | 2018-09-27 | 2019-02-15 | 迈普通信技术股份有限公司 | 远程调试方法、调试服务器及目标机 |
CN110704321A (zh) * | 2019-09-27 | 2020-01-17 | 京东数字科技控股有限公司 | 程序调试方法和装置 |
CN110879781A (zh) * | 2019-11-06 | 2020-03-13 | 北京奇艺世纪科技有限公司 | 程序调试方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111782530A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782530B (zh) | 一种远程调试方法、装置、系统、电子设备及存储介质 | |
CN111083225B (zh) | 在物联网平台中的数据处理方法、装置及物联网平台 | |
WO2022016847A1 (zh) | 一种适用于云平台的自动化测试方法及装置 | |
US20050195390A1 (en) | Method of testing open services gateway initiative service platform and test tool using the method | |
CN108536571A (zh) | 性能测试方法、装置、设备及计算机可读存储介质 | |
CN110784374A (zh) | 业务系统运行状态的监控方法、装置、设备和系统 | |
CN109542718A (zh) | 服务调用的监控方法、装置、存储介质及服务器 | |
CN113076253A (zh) | 一种测试方法和测试装置 | |
CN111159019A (zh) | 一种应用程序的测试方法、测试控制终端以及测试终端 | |
CN111147310A (zh) | 一种日志跟踪处理的方法、装置、服务器及介质 | |
CN110716738A (zh) | 数据处理方法、装置、云平台、电子设备及存储介质 | |
CN113961463A (zh) | 应用环境切换方法及系统、存储介质和电子设备 | |
CN114090623A (zh) | 一种缓存资源的创建方法、装置、电子设备及存储介质 | |
CN115391228A (zh) | 精准测试方法、装置、设备及介质 | |
CN114579194A (zh) | 一种基于Spring远程调用的异常处理方法和系统 | |
CN117041111A (zh) | 车云功能测试方法、装置、电子设备及存储介质 | |
US9189370B2 (en) | Smart terminal fuzzing apparatus and method using multi-node structure | |
CN117149609A (zh) | 一种测试接口的方法和装置 | |
CN111049795B (zh) | 分布式Web应用的敏感数据未加密漏洞的检测方法及装置 | |
CN108288135B (zh) | 系统兼容方法及装置、计算机可读存储介质及电子设备 | |
CN111478941A (zh) | Mock自动化运行方法、装置、计算机设备及存储介质 | |
US20230071504A1 (en) | Multi-client orchestrated automated testing platform | |
CN115225342B (zh) | 漏洞扫描方法、装置、系统、电子装置和存储介质 | |
CN114301660B (zh) | 多服务器认证方法、装置、设备及存储介质 | |
CN112532478B (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 |