CN114691486A - 程序调试方法、装置及计算机设备 - Google Patents

程序调试方法、装置及计算机设备 Download PDF

Info

Publication number
CN114691486A
CN114691486A CN202011644447.4A CN202011644447A CN114691486A CN 114691486 A CN114691486 A CN 114691486A CN 202011644447 A CN202011644447 A CN 202011644447A CN 114691486 A CN114691486 A CN 114691486A
Authority
CN
China
Prior art keywords
debugging
terminal
program
result data
debugged
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.)
Pending
Application number
CN202011644447.4A
Other languages
English (en)
Inventor
邬继阳
刘楚蓉
罗家润
谢宗兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011644447.4A priority Critical patent/CN114691486A/zh
Publication of CN114691486A publication Critical patent/CN114691486A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

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

程序调试方法、装置及计算机设备
技术领域
本申请涉及互联网技术领域,尤其涉及一种程序调试方法、装置及计算机设备。
背景技术
在互联网技术领域中,程序调试,是指软件开发人员在软件开发过程中发现和减少计算机程序错误的一个过程。目前的调试方案中根据开发人员能否直接连接待调试的程序来划分,主要分为两种类型:本地调试和远程调试。对于本地调试这种类型的调试,当前的集成开发环境都能提供比较友好的支持,如移动端程序的IntelliJ IDEA或者AndroidStudio等,可以直接使用集成开发环境(Integrated Development Environment,IDE)原生的调试插件进行断点下发和堆栈信息获取等操作,操作较便利。
但是对于远程调试,比如运行在服务器上的后台程序,或者运行在用户手机中的产品应用软件(Application,APP),IDE无法像本地调试一样直接获取程序的运行状态和调试结果数据。因此,如何高效、便捷地实现远程调试是当前亟待解决的一个技术问题。
发明内容
本申请实施例提出了一种程序调试方法、装置及计算机设备,可以便捷、高效的实现远程调试,便于业务侧快速定位产品问题,从而最小化业务损失。
本申请实施例一方面提供了一种程序调试方法,应用于第一终端,所述第一终端运行有调试插件,所述方法包括:
通过中转服务器向第二终端发送针对待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的;
通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的;
在所述操作界面中输出所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
本申请实施例一方面提供了一种程序调试方法,应用于中转服务器,所述方法包括:
通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息;
将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据;
接收所述第二终端发送的调试结果数据,并存储所述调试结果数据。
本申请实施例一方面提供了一种程序调试装置,应用于第一终端,所述第一终端运行有调试插件,所述装置包括:
发送单元,用于通过中转服务器向第二终端发送针对待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的;
获取单元,用于通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的;
展示单元,用于在所述操作界面中输出所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
本申请实施例一方面提供了一种程序调试装置,应用于中转服务器,所述装置包括:
获取单元,用于通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息;
发送单元,用于将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据;
接收单元,用于接收所述第二终端发送的调试结果数据,并存储所述调试结果数据。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述各实施例中的方法。
本申请实施例一方面提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行上述各实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被计算机设备的处理器执行时,执行上述各实施例中的方法。
通过本申请实施例的程序调试方法,第一终端与中转服务器之间建立连接,第二终端与中转服务器之间建立连接,即通过中转服务器可以建立第一终端与第二终端之间的连接,通过中转服务器转发调试终端(即第一终端)下发的调试命令,远程终端(即第二终端)可以响应调试命令并针对待调试程序执行该调试命令,得到调试结果数据,可以在第一终端展示调试结果数据,使得调试人员可以根据调试结果数据确定待调试程序在第二终端上运行异常的原因,通过调试插件可以便捷、高效地实现远程调试,从而提高调试效率。第一终端可以在需要获取调试结果数据的时候通过中转服务器获取,或者也可以实时通过中转服务器获取调试结果数据,因此可以实现在线实时调试和离线异步调试。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种程序调试系统的结构示意图;
图2a是本申请实施例提供的一种集成开发环境的界面示意图;
图2b是本申请实施例提供的一种在线调试的界面示意图;
图2c是本申请实施例提供的一种离线调试的界面示意图;
图2d是本申请实施例提供的一种离线信息查看的界面示意图;
图3是本申请实施例提供的一种程序调试方法的流程示意图;
图4是本申请实施例提供的另一种程序调试方法的流程示意图;
图5是本申请实施例提供的一种程序调试方法的交互流程示意图;
图6是本申请实施例提供的一种程序调试装置的结构示意图;
图7是本申请实施例提供的另一种程序调试装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了能够更好地理解本申请实施例,下面对本申请实施例涉及的专业术语进行介绍:
UI:User Interface,用户界面。
SDK:Software Development Kit,软件开发包。
JDWP:Java Debug Wire Protocol,Java调试无线协议。
ADB:Android Debug Bridge,Android调试桥。
ADBD:ADB Daemon,ADB设备端常驻进程。
本申请实施例的典型应用场景具体如下:软件开发人员对线上用户反馈的问题进行远程调试,用以判断远程客户端对应的APP(待调试程序)的问题所在。例如,某视频应用的测试版本发布以后,会收到内测用户反馈的软件缺陷等问题,由于这些问题可能跟用户所使用的设备的型号有关,所以需要在用户的使用环境中进行问题复现与调试;但这些用户又分布在各地,无法使用传统的USB连接方式进行调试。因此,可以通过本申请实施例提供的程序调试方法实现对远程用户APP终端的调试,实现了远程终端的本地化调试,从而便于软件开发人员定位程序的问题所在。
请参见图1,图1是本申请实施例提供的一种程序调试系统的结构示意图。如图1所示,该结构示意图中可以包括:第一终端110、中转服务器120以及至少一个第二终端130。第一终端110与中转服务器120之间可以通过有线或无线通信方式进行直接或间接地连接,任意一个第二终端130与中转服务器120之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
需要说明的是,第一终端110中安装有IDE插件。其中,IDE插件可以安装在AndroidStudio,Intellij IDEA等Android移动端开发集成环境中。图1所示的第二终端130的数量仅仅用于示例,本申请在此不做限制。并且,第一终端110与第二终端130之间的设备类型可以相同,也可以不相同。这里是以第一终端110作为本地终端(即调试的控制端),第二终端130作为远程终端(即调试的对象)为例,当然,在某些应用场景中,第二终端130也可以作为本地终端,而第一终端110也可以作为远程终端,本申请在此不做限制。
图1所示的中转服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
图1所示的第一终端110、第二终端130可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、车辆、路边设备、飞行器、可穿戴设备,例如智能手表、智能手环、计步器等智能设备。第二终端130还可以是服务器。
具体地,第一终端110主要负责跟本地代码的交互以及调试命令的下发及调试结果数据的展示等,便于开发者直接在代码端看到调试结果数据。插件开发主要依赖IntelliJ开放平台的SDK进行代码相关的交互,页面展示则主要依赖于Java中的Swing UI进行各种调试结果数据的展示。中转服务器120主要负责建立起本地IDE插件与远端APP程序之间的交互,主要负责调试命令的下发,调试结果数据的传输等。第二终端130主要负责根据断点信息对待调试程序执行调试操作,以生成调试结果数据。
需要说明的是,第一终端110与中转服务器120之间可以通过超文本传输协议进行数据传输,第二终端130与中转服务器120之间可以通过传输控制协议进行数据传输。
在一种可能的实现方式中,以第二终端130为例进行具体说明。第一终端110通过中转服务器120向第二终端130发送针对待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端130根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的。中转服务器120将调试命令发送至第二终端130,第二终端130接收并响应中转服务器120发送的调试命令,第二终端130根据所述断点信息对所述待调试程序执行调试操作,得到调试结果数据;第二终端130将调试结果数据发送至中转服务器120,中转服务器120将调试结果数据发送至第一终端110。第一终端110在调试插件的操作界面中输出调试结果数据。后续,程序开发人员可以在操作界面中对调试结果数据进行分析,从而确定待调试程序在所述第二终端上运行异常的原因。
在一种可能的实现方式中,以第二终端130为例进行具体说明。中转服务器120通过超文本传输协议获取第一终端110发送的针对待调试程序的调试命令,所述调试命令包括断点信息。中转服务器120将所述调试命令发送至第二终端130,所述调试命令用于指示所述第二终端130根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据。中转服务器120接收所述第二终端130发送的调试结果数据,并存储所述调试结果数据。后续,第一终端110可以向中转服务器120发送数据获取请求,然后,中转服务器120将调试结果数据发送至第一终端110。
可以理解的是,本申请实施例描述的系统架构示意图是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
请参见图2a,图2a是本申请实施例提供的一种集成开发环境的界面示意图。具体的,集成开发环境运行在第一终端中,在集成开发环境中安装有调试插件。如图2a所示,第一终端中显示了集成开发环境对应的界面,该界面中包含调试插件,调试插件具体为DCLRemoteDebug插件。
在一种可能的实现方式中,DCLRemoteDebug插件可以安装在集成开发环境的工具栏窗口,并且DCLRemoteDebug插件和其他的工具,例如“TODO”工具(50),“Teminal”工具(60),“Build”工具(70)等并行排列。DCLRemoteDebug插件包括“个人中心”控件(10),“在线调试”控件(20),“离线调试”控件(30)以及“离线信息查看”控件(40)。用户可以点击“个人中心”控件,当用户点击“个人中心”控件之后,可以在第一终端的界面中显示个人中心对应的界面。具体的,个人中心对应的界面可以展示当前登录人,以及当前登录人(开发者)需要负责的用户反馈问题。个人中心对应的界面还可以展示项目栏,开发者在该项目栏中可以选择当前对应的产品,例如当前对应的产品可以为ALpha_Android。另外,个人中心对应的界面可以展示创建时间、反馈ID,反馈内容,反馈人,在线操作,离线操作,日志查看等。对于每一条需要处理的反馈问题,开发者可以直接发起在线调试,离线调试或者离线信息查看。其中,在线操作对应“在线调试”控件,开发者可以触发“在线调试”控件,即代表开发者发起一次在线调试;同样的,离线操作对应“离线调试”控件,开发者可以触发“在线调试”控件,即代表开发者发起一次离线调试;同样的,日志查看对应“日志查看”控件,开发者可以触发“日志查看”控件,即代表开发者可以查看离线信息。
请参见图2b,图2b是本申请实施例提供的一种在线调试的界面示意图。如图2b所示,当开发者发起在线调试后,可以从图2a所示的界面跳转至图2b所示的在线调试界面。在线调试界面中,开发者可以在IDE代码窗口针对需要调试的程序问题设置响应的断点信息,并根据断点信息生成调试命令。具体的,开发者点击启动按钮启动调试,即可完成调试命令的下发。在线调试保证开发者与远程用户的同时在线,所以可以进行阻塞断点的下发,同时也能进行Step Into(进入子函数),Step Over(越过子函数),Step Out(跳出子函数)等命令的执行。命令执行成功以后,在图2b所示的在线调试界面的左侧展示断点堆栈调用信息(如图2b中堆栈展示区所示),在线调试界面的右侧展示断点处对应的函数变量等信息(如图2b中结果展示区所示),开发者点击在线调试界面左侧的堆栈时,还能进行简单的代码跳转,便于查看。相比于利用浏览器手动建立与远程用户的联系,本方案无需引入浏览器等第三方终端建立连接,可以降低开发人员的操作复杂度。
请参见图2c,图2c是本申请实施例提供的一种离线调试的界面示意图。如图2c所示,若开发者与被调试者(远程用户)时间不一致时,可以采用离线调试机制,即开发者点击离线调试控件,发起离线调试。离线调试过程中,只进行调试命令的下发和通知用户的操作。具体的,开发者可以在左侧界面选择相应的断点,然后在界面的右侧可以点击“下发断点”控件,当开发者点击“下发断点”控件之后,即代表开发者下发了调试命令。当调试命令下发之后可以通知远程用户,并且可以在当前离线调试的界面中显示当前的调试状态为“通知用户成功”。当调试命令下发完成以后,开发者可以点击“退出调试”控件,即可关闭集成开发环境中的调试插件去完成其他工作,无需实时等待远程终端发送的调试结果数据。
请参见图2d,图2d是本申请实施例提供的一种离线信息查看的界面示意图。如图2d所示,待远程用户根据调试命令执行调试操作之后,开发者会收到提示消息,提示消息具体可以为“用户调试完成”等。此时开发者只需在离线信息查看的界面中打开调试插件的日志查看功能,即可看到离线调试下发的断点信息,断点信息可以为一个或者多个断点,在界面中开发者可以选择不同的断点,查看不同的断点对应的数据信息。
本申请提供的方案具体可以应用到视频社交业务中,进一步地,除了应用在视频社交业务中,其它产品同样可以使用这套调试方案和调试系统,且适配成本低,适用范围广。
请参见图3,图3是本申请实施例提供的一种程序调试方法的流程示意图。该方法应用于计算机设备,计算机设备具体可以为第一终端,第一终端运行有客户端,客户端中集成有调试插件,客户端用于提供待调试程序的开发环境以及调试环境。如图3所示,该程序调试方法可包括步骤S310~S330。其中:
步骤S310:通过中转服务器向第二终端发送针对所述待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的。
具体实现时,调试插件可以运行在第一终端的集成开发环境中,其中,调试插件是一种遵循一定规范的应用程序接口编写出来的程序。其可以运行在程序规定的系统平台下(可能同时支持多个平台),本申请中调试插件运行在集成开发环境中,并且调试插件可以用于针对远程调试实现本地化调试。例如,如图2a所示,调试插件具体可以为DCLRemoteDebug插件。并且,第一终端通过中转服务器向第二终端发送针对待调试程序的调试命令之前,第一终端与中转服务器之间通过有线或者无线的方式建立通信连接,以及中转服务器与第二终端之间也通过有线或者无线的方式建立通信连接。第一终端与第二终端之间的设备类型可以相同,也可以不相同,本申请对此不作限定。
在一种可能的实现方式中,第一终端可以通过超文本传输协议(HyperTextTransfer Protocol,HTTP)向中转服务器发送针对待调试程序的调试命令,然后,中转服务器通过传输控制协议(Transmission Control Protocol,TCP)向第二终端发送针对待调试程序的调试命令。并且,调试命令包括断点信息,断点信息中可以包括一个或者多个断点。其中,断点的类型可以包括阻塞断点,非阻塞断点,普通行断点,条件断点,异常断点,方法断点以及监视断点等等。
在一种可能的实现方式中,第一终端通过中转服务器向第二终端发送针对待调试程序的调试命令之前,还包括:首先,第一终端在操作界面中展示待调试程序在所述第二终端上的运行异常描述数据。然后,第一终端获取基于运行异常描述数据在操作界面中配置的断点信息。最后,第一终端根据断点信息生成针对待调试程序的调试命令。
举例来说,如图2a所示,在第一终端的操作界面,操作界面即调试插件运行在第一终端的集成开发环境中所展示的界面。需要说明的是,第一终端的操作界面中展示的待调试程序对应的运行异常描述数据可以是由第二终端发送给待调试程序对应的程序管理服务器之后,程序管理服务器发送给第一终端的;待调试程序对应的运行异常描述数据也可以是由第二终端直接发送第一终端的,然后第一终端在操作界面中展示待调试程序对应的运行异常描述数据。然后,用户在第一终端的操作界面中查看运行异常描述数据,并基于运行异常描述数据进行分析,然后基于运行异常描述数据配置相应的断点信息,断点信息可以包括一个或者多个断点。最后,第一终端根据断点信息生成针对待调试程序的调试命令,并将调试命令发送给中转服务器,以使中转服务器将调试命令发送给第二终端。
需要说明的是,为方便第一终端中调试插件的信息获取,第一终端与中转服务端之间采用HTTP协议进行数据传输,中转服务器与第二终端之间则采用TCP协议进行数据传输。
在一种可能的实现方式中,第一终端通过中转服务器向第二终端发送针对待调试程序的调试命令之前,还包括:首先,第一终端获取运行异常描述数据对应的用户标识;然后,第一终端通过超文本传输协议向中转服务器发送调试请求,其中,调试请求携带有用户标识,调试请求用于指示中转服务器根据用户标识与第二终端建立通信连接;最后,第一终端通过超文本传输协议接收中转服务器发送的建立完成的通知消息,其中,建立完成的通知消息携带有待调试程序的标识信息。
举例来说,如图2a所示,第一终端可以在操作界面中查看反馈待调试程序的运行异常描述数据的用户标识,用户标识具体可以为用户在第二终端中登录待调试程序的登录账号。第一终端通过超文本传输协议向中转服务器发送调试请求,并且,调试请求中包括用户标识,中转服务器接收到调试请求之后,根据用户标识确定第二终端,然后,中转服务器与第二终端之间建立通信连接。具体的,建立通信连接的方式可以为:中转服务器开启调试桥进程,第二终端中安装有额外的代理终端,该代理终端主要负责开启ADB server进程与ADB通道服务进程,与手机上的ADBD建立连接,中转服务器通过调试桥与第二终端之间建立通信连接。最后,中转服务器与第二终端之间建立通信连接之后,中转服务器通过传输控制协议接收第二终端发送的建立完成的通知消息,中转服务器通过超文本传输协议将建立完成的通知消息发送至第一终端。
步骤S320:通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的。
具体实现时,第一终端通过中转服务器获取调试结果数据。具体的,第二终端通过传输控制协议接收中转服务器发送的调试命令,并根据断点信息对待调试程序执行调试操作,生成调试结果数据。第二终端通过传输控制协议将调试结果数据发送至中转服务器,中转服务器通过超文本传输协议将调试结果数据发送给第一终端。
需要说明的是,在调试结果数据的传输过程中,调试结果数据的数据形式可以是Json序列化的数据格式(即Json文件),当然也可以是其他数据格式。第一终端获取到Json序列化的数据格式的调试结果数据之后,对调试结果数据进行解析,以获取调试结果数据。
在一种可能的实现方式中,调试命令还包括调试类型,在调试类型为在线调试的情况下,第一终端接收中转服务器在收到调试结果数据之后,发送的调试结果数据。需要说明的是,在线调试保证第一终端与第二终端同时在线,具体的,操作第一终端的开发者与操作第二终端的远程用户之间可以事先沟通好,可以确保在调试的时候处于在线调试状态。在线调试中,第一终端可以进行阻塞断点的下发,同时也能进行Step Into(进入子函数),Step Over(越过子函数),Step Out(跳出子函数)等命令的执行。
具体的,step into命令是指:单步执行,遇到子函数就进入并且继续单步执行。
step over命令是指:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。需要说明的是,在不存在子函数的情况下是和step into效果一样的。
step out命令是指:当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。
举例来说,如图2b所示,命令执行成功以后,在第一终端的操作界面中左侧界面展示断点堆栈调用信息,右侧展示断点处对应的函数变量等信息,用户可以在操作界面中点击左侧堆栈,用户点击左侧堆栈之后,还能进行简单的代码跳转,便于查看其他的函数变量等信息。
在一种可能的实现方式中,调试命令还包括调试类型。首先,在调试类型为离线调试的情况下,第一终端接收中转服务器发送的第二终端完成调试的通知消息。然后,当获取到调试结果查看指令时,第一终端向中转服务器发送数据获取请求,其中,数据获取请求携带有第二终端的标识信息,数据获取请求用于指示中转服务器根据第二终端的标识信息获取调试结果数据。最后,第一终端接收中转服务器发送的调试结果数据。
举例来说,在调试类型为离线调试的情况下,第一终端通过中转服务器向第二终端发送调试命令之后,开发者可以不用实时等待,在第二终端根据调试命令并完成调试操作之后,第二终端向中转服务器发送完成调试的通知消息,中转服务器将完成调试的通知消息发送至第一终端,第一终端可以在操作界面中查看该通知消息。之后,操作界面中还可以包括点击离线信息查看控件,当开发者点击离线信息查看控件时,即代表获取到调试结果查看指令,第一终端向中转服务器发送数据获取请求。然后,中转服务器获取调试结果数据并将调试结果数据发送至第一终端。需要说明的是,调试结果数据可以是第二终端完成调试之后,向中转服务器发送完成调试的通知消息中携带的;调试结果数据也可以是第二终端获取到中转服务器发送的调试结果查看指令之后,将调试结果数据发送至中转服务器的。相比于通过长连接方式进行远程用户APP终端的调试,本方案既可以在线实时调试又可以离线异步调试。
步骤S330:在所述操作界面中展示所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
具体实现时,调试插件的开发主要依赖IntelliJ开放平台的软件开发包进行代码相关的交互,然后,第一终端接收中转服务器发送的调试结果数据之后,通过调试插件解析调试结果数据,将Json序列化的数据格式的调试结果数据进行解析。最后,主要依赖于Java中的Swing UI进行页面渲染之后,在操作界面对调试结果数据进行展示。
举例来说,后续,程序开发人员可以在第一终端的操作界面中查看调试结果数据,并对调试结果数据中所包含的函数变量等参数进行分析,最终确定待调试程序在所述第二终端上运行异常的原因。具体来说,运行异常的原因可以是值待调试程序本身的程序问题所导致的,也可以是指待调试程序在第二终端中运行时产生的兼容性问题等。
需要说明的是,调试结果数据可以是由第二终端根据断点信息完成对待调试程序的所有调试操作之后,第二终端将所有的断点对应的调试结果数据打包发送给中转服务器之后,中转服务器将调试结果数据发送至第一终端的。调试结果数据也可以是由第二终端根据每个断点完成对待调试程序对应该断点的调试操作之后,生成的单位调试结果数据之后,将每一个单位调试结果数据发送至中转服务器,中转服务器将每一个单位调试结果数据发送至第一终端。
在一种可能的实现方式中,在操作界面中展示调试结果数据之后,也可以由第一终端根据调试结果数据自动确定待调试程序在第二终端上运行异常的原因。然后,第一终端可以在操作界面中展示调试结果数据和待调试程序在第二终端上运行异常的原因。后续,用户可以根据待调试程序在第二终端上运行异常的原因直接定位待调试程序的程序缺陷。
通过本申请实施例提供的程序调试方法,第一终端中运行有调试插件,第一终端与第二终端之间可以通过中转服务器进行通信,具体的,中转服务器分别与第一终端和第二终端之间建立通信连接,可以实现在线实时调试以及离线异步调试。基于IDE环境进行调试,符合开发人员直接在IDE上调试的操作习惯,可以高效、便捷地实现远程调试。并且,第一终端与中转服务器之间通过超文本传输协议进行数据传输,第二终端与中转服务器之间通过传输控制协议进行数据传输,最终可以在调试插件的操作界面中展示第二终端通过中转服务器发送的调试结果数据,后续,程序开发人员可以根据程序结果数据对远程用户反馈的程序问题进行及时高效处理,一方面实现了任意用户的远程手机调试,另外一方面极大地降低了开发者的使用成本,实现了远程终端的本地化调试,便于业务侧快速定位线上问题,最小化业务损失。
请参见图4,图4是本申请实施例提供的另一种程序调试方法的流程示意图。该方法应用于计算机设备,计算机设备具体可以为中转服务器。如图4所示,该程序调试方法可包括步骤S410~S430。其中:
步骤S410:通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息。
具体实现时,中转服务器与第一终端之间通过超文本传输协议进行数据传输,即中转服务器通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,其中,调试命令包括断点信息,断点信息包括一个或者多个断点。
在一种可能的实现方式中,中转服务器通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令之前,还包括:首先,中转服务器通过超文本传输协议获取第一终端发送的调试请求,其中,调试请求携带有用户标识。然后,中转服务器根据用户标识确定第二终端,并利用调试桥与第二终端建立通信连接。最后,中转服务器通过超文本传输协议向第一终端发送建立完成的通知消息,其中,建立完成的通知消息携带有待调试程序的标识信息。
举例来说,中转服务器通过超文本传输协议获取第一终端发送的调试请求之后,中转服务器通过用户标识确定第二终端的终端标识,然后利用调试桥根据第二终端的终端标识与第二终端之间建立通信连接。具体的,中转服务器向第二终端发送连接请求,第二终端接收中转服务器发送的连接请求之后,开启ADB server进程与ADB通道服务进程,并与第二终端中的ADBD建立连接,然后,第二终端可以通过传输控制协议将建立完成的通知消息发送至中转服务器,并且建立完成的通知消息携带有待调试程序的标识信息。后续,中转服务器通过超文本传输协议将建立完成的通知消息发送至第一终端之后,第一终端可以根据待调试程序的标识信息确定待调试程序。
步骤S420:将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据。
具体实现时,中转服务器与第二终端之间通过传输控制协议进行数据传输,即中转服务器通过传输控制协议将调试命令发送至第二终端。
需要说明的是,中转服务器获取第一终端发送的调试命令之后,中转服务器对调试命令中的参数进行解析,具体的,调试命令的数据格式可以为Json序列化(即Json),当然也可以是其他数据格式。中转服务器获取到Json序列化格式的调试命令之后,对Json序列化格式的调试命令进行解析,以获取调试命令。
步骤S430:接收所述第二终端发送的调试结果数据,并存储所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
具体实现时,中转服务器通过传输控制协议接收第二终端发送的调试结果数据,并将调试结果数据进行本地存储。
在一种可能的实现方式中,调试命令还包括调试类型,中转服务器在存储调试结果数据之后,还包括:首先,中转服务器在调试类型为离线调试的情况下,通过超文本传输协议向第一终端发送第二终端完成调试的通知消息;然后,中转服务器通过超文本传输协议接收第一终端在获取到调试结果查看指令时,发送的数据获取请求,数据获取请求携带有第二终端的标识信息;最后,中转服务器根据第二终端的标识信息获取调试结果数据,并通过超文本传输协议向第一终端发送调试结果数据。
具体实现时,调试插件的操作界面中可以包括离线信息查看控件,第一终端获取到调试结果查看指令可以是指程序开发人员在操作界面中点击离线信息查看控件,在离线信息查看控件被触发后,第一终端通过超文本传输协议向中转服务器发送数据获取请求,并且数据获取请求携带有第二终端的标识信息。中转服务器根据第二终端的标识信息将数据获取请求确定与第二终端的标识信息对应的第二终端,并且中转服务器通过传输控制协议将数据获取请求发送至第二终端,然后,中转服务器通过传输控制协议接收第二终端发送的调试结果数据,最后,中转服务器通过超文本传输协议向第一终端发送调试结果数据。
通过本申请实施例提供的程序调试方法,第一终端与第二终端之间可以通过中转服务器建立通信连接,并实现调试命令与调试结果数据等数据的传输,基于IDE环境进行调试,符合开发人员直接在IDE上调试的操作习惯,尽量保持远程调试跟本地调试的一致性,从而可以高效、便捷地实现远程调试。进一步地,相比于现有的远程调试需要开发人员通过浏览器等第三方终端,手动建立与远程用户的联系,本方案无需引入浏览器等第三方终端建立连接,可以降低开发人员的操作复杂度,并且可以解除第一终端与第二终端需要处于同一局域网环境下的限制。
请参见图5,图5是本申请实施例提供的一种程序调试方法的交互流程示意图。该方法应用于计算机设备,计算机设备具体可以为第一终端或者中转服务器或者第二终端,第一终端运行有调试插件。如图5所示,该程序调试方法可包括步骤S510~S5100。其中:
步骤S510:确定用户标识,发起调试请求。
具体实现时,第一终端可以在调试插件的操作界面中获取用户标识,用户标识具体可以为用户在第二终端中登录待调试程序的登录账号,例如登录账户具体可以为用户的身份证号或者手机号或者用户昵称等等。第一终端与中转服务器之间通过超文本传输协议进行数据传输,第一终端通过超文本传输协议将调试请求发送至中转服务器,调试请求携带有用户标识。
步骤S520:执行连接操作,使用调试桥建立通信连接。
具体实现时,中转服务器在获取到第一终端发送的调试请求之后,中转服务器执行连接操作,具体的可以使用调试桥与第二终端之间建立通信连接。在执行连接操作之前,中转服务器可以根据用户标识确定第二终端,并向第二终端发送连接请求。
步骤S530:连接成功,返回进程标识。
具体实现时,中转服务器向第二终端发送连接请求之后,第二终端响应中转服务器发送的连接请求,并开启ADB server(调试桥服务)进程与ADB通道服务进程,然后中转服务器利用调试桥与第二终端之间建立通信连接。通信连接建立完成之后,第二终端向中转服务器发送建立完成的通知消息,并且,建立完成的通知消息携带有待调试程序的标识信息,标识信息具体可以是进程标识。
步骤S540:连接成功,返回进程标识。
具体实现时,中转服务器通过超文本传输协议将建立完成的通知消息发送至第一终端,需要说明的是,在数据传输过程中,不使用长连接,避免网络中断导致调试异常。
步骤S550:设置断点信息,发送调试命令。
具体实现时,第一终端通过超文本传输协议获取中转服务器发送的建立完成的通知消息,建立完成的通知消息携带有待调试程序的标识信息,并根据待调试程序的标识信息确定待调试程序,并且针对待调试程序设置断点信息,最后,根据断点信息生成调试命令,并通过超文本传输协议将调试命令发送给中转服务器。
步骤S560:发送调试命令。
具体实现时,中转服务器通过传输控制协议向第二终端发送调试命令。
步骤S570:根据调试命令进行调试。
具体实现时,第二终端根据调试命令对待调试程序进行问题复现,即根据断点信息对待调试程序执行调试操作,得到调试结果数据。
步骤S580:返回调试结果数据。
具体实现时,第二终端通过传输控制协议将调试结果数据发送至中转服务器。需要说明的是,调试结果数据可以是由第二终端根据断点信息完成对待调试程序的所有调试操作之后,第二终端将所有的断点对应的调试结果数据打包发送给中转服务器的。调试结果数据也可以是由第二终端根据每个断点完成对待调试程序对应该断点的调试操作之后,生成的单位调试结果数据之后,将每一个单位调试结果数据分别发送至中转服务器。
步骤S590:发送调试数据请求。
具体实现时,第一终端向中转服务器发送数据获取请求。具体来说,在调试类型为离线调试的情况下,第一终端接收中转服务器发送的第二终端完成调试的通知消息;当获取到调试结果查看指令时,第一终端向中转服务器发送数据获取请求,数据获取请求携带有第二终端的标识信息,数据获取请求用于指示中转服务器根据第二终端的标识信息获取调试结果数据。
步骤S5100:发送调试结果数据。
具体实现时,中转服务器响应第一终端发送的调试数据获取请求,其中,数据获取请求携带有第二终端的标识信息,数据获取请求用于指示中转服务器根据第二终端的标识信息获取调试结果数据。中转服务器通过超文本传输控制协议向第一终端发送调试结果数据。
通过本申请实施例提供的程序调试方法,第一终端中运行有调试插件,第一终端与第二终端之间可以通过中转服务器进行通信,具体的,中转服务器分别与第一终端和第二终端之间建立通信连接,可以实现在线实时调试以及离线异步调试。并且,第一终端与中转服务器之间通过超文本传输协议进行数据传输,第二终端与中转服务器之间通过传输控制协议进行数据传输,最终可以在调试插件的操作界面中展示第二终端通过中转服务器发送的调试结果数据,后续,程序开发人员可以根据程序结果数据对远程用户反馈的程序问题进行及时高效处理,一方面实现了任意用户的远程手机调试,另外一方面极大地降低了开发者的使用成本,实现了远程终端的本地化调试,便于业务侧快速定位线上问题,最小化业务损失。
请参见图6,图6是本申请实施例提供的一种程序调试装置60的结构示意图。该程序调试装置60可应用于图3~图5对应的方法实施例中的第一终端。程序调试装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该程序调试装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。该程序调试装置可包括:
发送单元610,用于通过中转服务器向第二终端发送针对待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的;
获取单元620,用于通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的;
展示单元630,用于在所述操作界面中展示所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
在一种可能的实现方式中,本申请实施例提供的程序调试装置还包括:处理单元640。
在发送单元610通过中转服务器向第二终端发送针对待调试程序的调试命令之前,展示单元630在所述操作界面中展示所述待调试程序在所述第二终端上的运行异常描述数据;
所述获取单元620,还用于获取基于所述运行异常描述数据在所述操作界面中配置的断点信息;
处理单元640,用于根据所述断点信息生成针对所述待调试程序的调试命令。
在一种可能的实现方式中,调试命令还包括调试类型,所述获取单元620,具体用于:
在所述调试类型为在线调试的情况下,接收所述中转服务器在收到调试结果数据之后,发送的所述调试结果数据。
在一种可能的实现方式中,调试命令还包括调试类型,所述获取单元620,具体用于:
在所述调试类型为离线调试的情况下,接收所述中转服务器发送的所述第二终端完成调试的通知消息;
当获取到调试结果查看指令时,向所述中转服务器发送数据获取请求,所述数据获取请求携带有所述第二终端的标识信息,所述数据获取请求用于指示所述中转服务器根据所述第二终端的标识信息获取调试结果数据;
接收所述中转服务器发送的所述调试结果数据。
在一种可能的实现方式中,本申请实施例提供的程序调试装置还包括:接收单元650。
所述获取单元620,还用于获取所述运行异常描述数据对应的用户标识;
所述发送单元610,还用于通过超文本传输协议向所述中转服务器发送调试请求,所述调试请求携带有所述用户标识,所述调试请求用于指示所述中转服务器根据所述用户标识与第二终端建立通信连接;
所述接收单元650,用于通过所述超文本传输协议接收所述中转服务器发送的建立完成的通知消息,所述建立完成的通知消息携带有所述待调试程序的标识信息。
请参见图7,图7是本申请实施例提供的一种程序调试装置70的结构示意图。该程序调试装置70可应用于图3~图5对应的方法实施例中的中转服务器。程序调试装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该程序调试装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。该程序调试装置可包括:
获取单元710,用于通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息;
发送单元720,用于将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据;
接收单元730,用于接收所述第二终端发送的调试结果数据,并存储所述调试结果数据。
在一种可能的实现方式中,本申请实施例提供的程序调试装置还包括:确定单元740。
所述发送单元720,还用于通过所述超文本传输协议获取所述第一终端发送的调试请求,所述调试请求携带有用户标识;
所述确定单元740,用于根据所述用户标识确定所述第二终端,并利用调试桥与所述第二终端建立通信连接;
所述发送单元720,还用于通过所述超文本传输协议向所述第一终端发送建立完成的通知消息,所述建立完成的通知消息携带有所述待调试程序的标识信息。
在一种可能的实现方式中,调试命令还包括调试类型,其中:
所述发送单元720,还用于在所述调试类型为离线调试的情况下,通过所述超文本传输协议向所述第一终端发送所述第二终端完成调试的通知消息;
所述获取单元710,还用于通过所述超文本传输协议接收所述第一终端在获取到调试结果查看指令时,发送的数据获取请求,所述数据获取请求携带有所述第二终端的标识信息;
所述获取单元710,还用于根据所述第二终端的标识信息获取所述调试结果数据,并通过所述超文本传输协议向所述第一终端发送所述调试结果数据。
请参见图8,图8是本申请实施例提供的一种计算机设备80的结构示意图,该计算机设备80用于执行图3~图5对应的方法实施例中第一终端,或者中转服务器所执行的步骤。该计算机设备80包括:一个或多个处理器810;一个或多个输入设备820,一个或多个输出设备830和存储器840。上述处理器810、输入设备820、输出设备830和存储器840通过总线850连接。
当该计算机设备作为第一终端时,存储器840用于存储计算机程序,所述计算机程序包括程序指令,处理器810,用于执行存储器840存储的程序指令,执行以下操作:
通过中转服务器向第二终端发送针对待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的;
通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的;
在所述操作界面中输出所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
在一种可能的实现方式中,所述处理器810,还用于:
在所述操作界面中展示所述待调试程序在所述第二终端上的运行异常描述数据;
获取基于所述运行异常描述数据在所述操作界面中配置的断点信息;
根据所述断点信息生成针对所述待调试程序的调试命令。
在一种可能的实现方式中,调试命令还包括调试类型,所述处理器810,具体用于:
在所述调试类型为在线调试的情况下,接收所述中转服务器在收到调试结果数据之后,发送的所述调试结果数据。
在一种可能的实现方式中,调试命令还包括调试类型,所述处理器810,具体用于:
在所述调试类型为离线调试的情况下,接收所述中转服务器发送的所述第二终端完成调试的通知消息;
当获取到调试结果查看指令时,向所述中转服务器发送数据获取请求,所述数据获取请求携带有所述第二终端的标识信息,所述数据获取请求用于指示所述中转服务器根据所述第二终端的标识信息获取调试结果数据;
接收所述中转服务器发送的所述调试结果数据。
在一种可能的实现方式中,所述处理器810,还用于:
获取所述运行异常描述数据对应的用户标识;
通过超文本传输协议向所述中转服务器发送调试请求,所述调试请求携带有所述用户标识,所述调试请求用于指示所述中转服务器根据所述用户标识与第二终端建立通信连接;
通过所述超文本传输协议接收所述中转服务器发送的建立完成的通知消息,所述建立完成的通知消息携带有所述待调试程序的标识信息。
当该计算机设备作为中转服务器时,存储器840用于存储计算机程序,所述计算机程序包括程序指令,处理器810,用于执行存储器840存储的程序指令,执行以下操作:
通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息;
将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据;
接收所述第二终端发送的调试结果数据,并存储所述调试结果数据。
在一种可能的实现方式中,所述处理器810,还用于:
通过所述超文本传输协议获取所述第一终端发送的调试请求,所述调试请求携带有用户标识;
根据所述用户标识确定所述第二终端,并利用调试桥与所述第二终端建立通信连接;
通过所述超文本传输协议向所述第一终端发送建立完成的通知消息,所述建立完成的通知消息携带有所述待调试程序的标识信息。
在一种可能的实现方式中,调试命令还包括调试类型,所述处理器810,还用于:
在所述调试类型为离线调试的情况下,通过所述超文本传输协议向所述第一终端发送所述第二终端完成调试的通知消息;
通过所述超文本传输协议接收所述第一终端在获取到调试结果查看指令时,发送的数据获取请求,所述数据获取请求携带有所述第二终端的标识信息;
根据所述第二终端的标识信息获取所述调试结果数据,并通过所述超文本传输协议向所述第一终端发送所述调试结果数据。
应当理解,本申请实施例中所描述的计算机设备可执行前文图3~图5所对应实施例中对程序调试方法的描述,也可执行前文图6和图7所对应实施例中对程序调试装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有前文提及的页面生成装置所执行的计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文图3~图5所对应实施例中的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文图3~图5所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种程序调试方法,其特征在于,应用于第一终端,所述第一终端上运行有客户端,所述客户端中集成有调试插件,所述客户端用于提供待调试程序的开发环境以及调试环境,所述方法包括:
通过中转服务器向第二终端发送针对所述待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的;
通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的;
在所述操作界面中展示所述调试结果数据,所述调试结果数据用于确定所述待调试程序的在所述第二终端上运行异常的原因。
2.根据权利要求1所述的方法,其特征在于,所述通过中转服务器向第二终端发送针对所述待调试程序的调试命令之前,所述方法还包括:
在所述操作界面中展示所述待调试程序在所述第二终端上的运行异常描述数据;
获取基于所述运行异常描述数据在所述操作界面中配置的断点信息;
根据所述断点信息生成针对所述待调试程序的调试命令。
3.根据权利要求1或2所述的方法,其特征在于,所述调试命令还包括调试类型,所述通过所述中转服务器获取调试结果数据,包括:
在所述调试类型为在线调试的情况下,接收所述中转服务器在收到调试结果数据之后,发送的所述调试结果数据。
4.根据权利要求1或2所述的方法,其特征在于,所述调试命令还包括调试类型,所述通过所述中转服务器获取调试结果数据,包括:
在所述调试类型为离线调试的情况下,接收所述中转服务器发送的所述第二终端完成调试的通知消息;
当获取到调试结果查看指令时,向所述中转服务器发送数据获取请求,所述数据获取请求携带有所述第二终端的标识信息,所述数据获取请求用于指示所述中转服务器根据所述第二终端的标识信息获取调试结果数据;
接收所述中转服务器发送的所述调试结果数据。
5.根据权利要求2所述的方法,其特征在于,所述通过中转服务器向第二终端发送针对所述待调试程序的调试命令之前,所述方法还包括:
获取所述运行异常描述数据对应的用户标识;
通过超文本传输协议向所述中转服务器发送调试请求,所述调试请求携带有所述用户标识,所述调试请求用于指示所述中转服务器根据所述用户标识与第二终端建立通信连接;
通过所述超文本传输协议接收所述中转服务器发送的建立完成的通知消息,所述建立完成的通知消息携带有所述待调试程序的标识信息。
6.一种程序调试方法,其特征在于,应用于中转服务器,所述方法包括:
通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息;
将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据;
接收所述第二终端发送的调试结果数据,并存储所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
7.根据权利要求6所述的方法,其特征在于,所述调试命令还包括调试类型,所述存储所述调试结果数据之后,所述方法还包括:
在所述调试类型为离线调试的情况下,通过所述超文本传输协议向所述第一终端发送所述第二终端完成调试的通知消息;
通过所述超文本传输协议接收所述第一终端在获取到调试结果查看指令时,发送的数据获取请求,所述数据获取请求携带有所述第二终端的标识信息;
根据所述第二终端的标识信息获取所述调试结果数据,并通过所述超文本传输协议向所述第一终端发送所述调试结果数据。
8.一种程序调试装置,其特征在于,应用于第一终端,所述第一终端上运行有客户端,所述客户端中集成有调试插件,所述客户端用于提供待调试程序的开发环境以及调试环境,所述装置包括:
发送单元,用于通过中转服务器向第二终端发送针对所述待调试程序的调试命令,所述调试命令包括断点信息,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,所述断点信息是在所述调试插件的操作界面中配置的;
获取单元,用于通过所述中转服务器获取调试结果数据,所述调试结果数据是由所述第二终端对所述待调试程序执行调试操作后得到的;
展示单元,用于在所述操作界面中展示所述调试结果数据,所述调试结果数据用于确定所述待调试程序的在所述第二终端上运行异常的原因。
9.一种程序调试装置,其特征在于,应用于中转服务器,所述装置包括:
获取单元,用于通过超文本传输协议获取第一终端发送的针对待调试程序的调试命令,所述调试命令包括断点信息;
发送单元,用于将所述调试命令发送至第二终端,所述调试命令用于指示所述第二终端根据所述断点信息对所述待调试程序执行调试操作,并得到调试结果数据;
接收单元,用于接收所述第二终端发送的调试结果数据,并存储所述调试结果数据,所述调试结果数据用于确定所述待调试程序在所述第二终端上运行异常的原因。
10.一种计算机设备,其特征在于,包括存储器以及处理器,所述存储器存储一组程序代码,所述处理器调用所述存储器中存储的程序代码,用于执行1~5或6~7中任一项所述的方法。
CN202011644447.4A 2020-12-30 2020-12-30 程序调试方法、装置及计算机设备 Pending CN114691486A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011644447.4A CN114691486A (zh) 2020-12-30 2020-12-30 程序调试方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011644447.4A CN114691486A (zh) 2020-12-30 2020-12-30 程序调试方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN114691486A true CN114691486A (zh) 2022-07-01

Family

ID=82136211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011644447.4A Pending CN114691486A (zh) 2020-12-30 2020-12-30 程序调试方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN114691486A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314541A (zh) * 2022-10-12 2022-11-08 阿里巴巴(中国)有限公司 远程调试方法、通信系统、电子设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316603A (ja) * 2002-04-24 2003-11-07 Matsushita Electric Ind Co Ltd プログラム検証システム
CN102594914A (zh) * 2012-03-15 2012-07-18 广州亦云信息技术有限公司 一种基于云平台的远程调试方法
CN104657828A (zh) * 2015-02-17 2015-05-27 华为技术有限公司 数据化和数据匹配方法和代码推荐方法及相关装置
CN105630664A (zh) * 2014-11-06 2016-06-01 中兴通讯股份有限公司 一种反向调试方法、装置及调试器
CN108241545A (zh) * 2016-12-27 2018-07-03 中移(苏州)软件技术有限公司 系统故障的调试方法及装置
CN108509333A (zh) * 2017-02-28 2018-09-07 腾讯科技(深圳)有限公司 调试方法及装置
CN109002366A (zh) * 2018-07-26 2018-12-14 广东蔚海数问大数据科技有限公司 一种移动端网页的远程调试方法及装置
CN110209389A (zh) * 2019-06-05 2019-09-06 卡斯柯信号(成都)有限公司 一种基于xml的数据生成工具开发系统
CN111092780A (zh) * 2018-10-23 2020-05-01 山东华软金盾软件股份有限公司 一种安卓系统动态调试的方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316603A (ja) * 2002-04-24 2003-11-07 Matsushita Electric Ind Co Ltd プログラム検証システム
CN102594914A (zh) * 2012-03-15 2012-07-18 广州亦云信息技术有限公司 一种基于云平台的远程调试方法
CN105630664A (zh) * 2014-11-06 2016-06-01 中兴通讯股份有限公司 一种反向调试方法、装置及调试器
CN104657828A (zh) * 2015-02-17 2015-05-27 华为技术有限公司 数据化和数据匹配方法和代码推荐方法及相关装置
CN108241545A (zh) * 2016-12-27 2018-07-03 中移(苏州)软件技术有限公司 系统故障的调试方法及装置
CN108509333A (zh) * 2017-02-28 2018-09-07 腾讯科技(深圳)有限公司 调试方法及装置
CN109002366A (zh) * 2018-07-26 2018-12-14 广东蔚海数问大数据科技有限公司 一种移动端网页的远程调试方法及装置
CN111092780A (zh) * 2018-10-23 2020-05-01 山东华软金盾软件股份有限公司 一种安卓系统动态调试的方法及系统
CN110209389A (zh) * 2019-06-05 2019-09-06 卡斯柯信号(成都)有限公司 一种基于xml的数据生成工具开发系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314541A (zh) * 2022-10-12 2022-11-08 阿里巴巴(中国)有限公司 远程调试方法、通信系统、电子设备和存储介质

Similar Documents

Publication Publication Date Title
EP3842948B1 (en) Method and apparatus for testing edge computing, device, and readable storage medium
US8863085B1 (en) Monitoring web applications
US8533532B2 (en) System identifying and inferring web session events
CN104834602B (zh) 一种程序发布方法、装置和程序发布系统
CN110309931B (zh) 一种业务优化方法及装置
CN107168844B (zh) 一种性能监控的方法及装置
CN112988599B (zh) 一种页面调试方法、装置、电子设备和存储介质
CN113608812B (zh) 远程控制方法、装置、系统及存储介质
CN113836264A (zh) 基于rpa及ai的流程监控方法、装置、设备及介质
CN112015654A (zh) 用于测试的方法和装置
CN111400167A (zh) Redfish服务合规性验证方法、装置及设备和介质
KR20220003625A (ko) 성능 검측 방법, 장치, 전자 기기, 컴퓨터 판독 가능 매체 및 컴퓨터 프로그램 제품
CN114328132A (zh) 外部数据源的状态监控方法、装置、设备和介质
CN114691486A (zh) 程序调试方法、装置及计算机设备
CN107203471B (zh) 联调方法、服务平台及计算机存储介质
CN112559357A (zh) 第三方设备的接入方法、装置、电子设备及可读存储介质
JP4696744B2 (ja) プログラムテスト装置、方法、及び、プログラム
CN112988267A (zh) 加载方法、装置、存储介质及电子设备
CN107590062B (zh) 一种多客户端交互的测试方法和装置
CN112241356B (zh) 一种页面测试方法、装置、设备及存储介质
CN114666258B (zh) 接口测试方法、装置、电子设备和介质
CN115382216A (zh) 一种可视化游戏数据调试方法和系统
CN115705284A (zh) 一种自动化测试系统、方法、设备及介质
CN115016960A (zh) 可配置的rpa机器人全流程信息通知处理方法及系统
CN110233760B (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