CN112214416A - 调试小程序的方法、装置、电子设备和存储介质 - Google Patents

调试小程序的方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112214416A
CN112214416A CN202011282569.3A CN202011282569A CN112214416A CN 112214416 A CN112214416 A CN 112214416A CN 202011282569 A CN202011282569 A CN 202011282569A CN 112214416 A CN112214416 A CN 112214416A
Authority
CN
China
Prior art keywords
debugging
module
target
instruction
debug
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
Application number
CN202011282569.3A
Other languages
English (en)
Other versions
CN112214416B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011282569.3A priority Critical patent/CN112214416B/zh
Publication of CN112214416A publication Critical patent/CN112214416A/zh
Priority to PCT/CN2021/091891 priority patent/WO2022100033A1/zh
Priority to EP21823719.6A priority patent/EP4027246B1/en
Priority to US17/597,083 priority patent/US20220374331A1/en
Priority to JP2021576737A priority patent/JP7241931B2/ja
Priority to KR1020217041768A priority patent/KR20220002690A/ko
Application granted granted Critical
Publication of CN112214416B publication Critical patent/CN112214416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3664Environments for testing or debugging software
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请公开了一种调试小程序的方法,涉及计算机技术领域。具体实现方案为:根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块;运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块;根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。本申请还公开了一种调试小程序的装置、电子设备和存储介质。

Description

调试小程序的方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,具体涉及计算机通信和软件调试技术。更具体地,本申请提供了一种调试小程序的方法、装置、电子设备和存储介质。
背景技术
小程序是指嵌入到软件中的,无需下载和安装便可以使用的应用程序。小程序在投入运行之前,也需要对小程序进行调试,以便对该小程序中存在的语法或逻辑错误进行修正。
针对小程序的调试最重要的部分是进行断点调试,即在代码的目标位置中断小程序执行并在桌面端的调试面板上展示变量细节,以便用户基于变量细节修正小程序。但是在进行断点调试时小程序处于中断状态,无法响应调试工具的调试指令,造成调试困难,调试效率低和调试效果差。
发明内容
提供了一种调试小程序的方法、装置、电子设备和存储介质。
根据第一方面,提供了一种调试小程序的方法,小程序包括多个调试模块,该方法包括:根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块;运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块;根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。
根据第二方面,提供了一种调试小程序的方法,小程序包括多个调试模块,该方法包括:发送第一调试指令,第一调试指令指示多个调试模块中的至少一个调试模块为目标调试模块;响应于接收到小程序运行至目标调试模块时的运行数据,发送用于调试目标调试模块的第二调试指令;接收目标测试模块的调试结果。
根据第三方面,提供了一种调试小程序的装置,该装置包括:选择模块,用于根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块;第一中断模块,用于运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块;第一调试模块,用于根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。
根据第四方面,提供了一种调试小程序的装置,小程序包括多个调试模块,该装置包括:第一发送模块,用于发送第一调试指令,第一调试指令指示选择多个调试模块中的至少一个调试模块为目标调试模块;第二发送模块,用于响应于接收到小程序运行至目标调试模块时的运行数据,发送用于调试目标调试模块的第二调试指令;第一接收模块,用于接收目标测试模块的调试结果。
根据第五方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行根据本申请提供的调试小程序的方法。
根据第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本申请提供的调试小程序的方法。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一个实施例的可以应用调试小程序的方法和装置的示例性系统架构;
图2是根据本申请的一个实施例的调试小程序的方法的流程图;
图3是根据本申请的一个实施例的根据第二调试指令来唤醒中断的目标调试模块进行调试的方法的流程图;
图4是根据本申请的另一个实施例的调试小程序的方法的流程图;
图5是根据本申请的另一个实施例的调试小程序的方法的流程图;
图6是根据本申请的另一个实施例的调试小程序的方法的流程图;
图7是根据本申请的另一个实施例的调试小程序的方法的流程图;
图8是是根据本申请的一个实施例的在模拟环境下的调试小程序的方法的流程图;
图9是根据本申请的一个实施例的在真实环境下的调试小程序的方法的流程图;
图10是根据本申请的一个实施例的调试小程序的装置的框图;
图11是根据本申请的一个实施例的调试小程序的装置的框图;以及
图12是根据本申请一个实施例的调试小程序的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
小程序可以运行在不同操作平台中(如Android、IOS,Web浏览器等),操作平台与桌面端的调试工具之间的交互会有一些限制。例如由于IOS操作系统的限制,IOS终端不能和桌面端调试工具直接进行通信,也就是无法实现手机端运行环境的代码断点和调试功能。
在实现本申请的过程中,发明人发现,可以在桌面端的开发工具中模拟小程序的运行,然后通过调试程序与模拟小程序之间的通信,完成小程序的调试。
但是,无论在真机运行环境或者模拟运行环境下,在对小程序进行调试时,都需要调试工具与运行小程序的进程进行指令交互。而小程序调试中最主要的是要进行断点调试,在进行断点调试时小程序处于中断状态无法响应调试工具的指令,造成调试困难,调试效率低和调试效果差。
图1是根据本申请一个实施例的可以应用调试小程序的方法和装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本申请实施例的系统架构的示例,以帮助本领域技术人员理解本申请的技术内容,但并不意味着本申请实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备110、和终端设备120。终端设备110和终端设备120之间可以通过匹配的外接交互接口进行连接以直接通信,也可以通过云服务器的转发间接进行通信。
终端设备120可以运行有小程序,终端设备110上包括用于小程序开发的开发工具,开发工具上可以包括用于模拟小程序运行的模拟器111和用于小程序调试的调试器112,调试器112可以为用户提供操作和查看数据的调试面板。
用户在需要对终端设备120中的小程序进行调试时,可以通过终端设备110与终端设备120直接进行交互来实现,还可以通过终端设备110上的调试器112和模拟器111进行交互来实现,还可以通过云服务器的转发使得终端设备110与终端设备120进行交互来实现。例如,Android系统的终端由于系统开源可以直接和桌面端的调试器112进行通信,因此,Android系统的小程序可以直接在真机运行环境下进行调试。又例如,IOS系统的终端不能直接和桌面端的调试器112进行通信,因此,可以在模拟器111中模拟小程序运行,通过模拟器111和调试器112进行交互来调试小程序。又例如,为了实现IOS终端的真机调试,可以通过云服务器的转发实现调试器112和IOS终端之间的通信,进而实现小程序的调试。又例如,Web浏览器中的小程序也可以直接与调试器112直接通信,因此,也可以对Web浏览器中的小程序进行调试。因此,本申请可以实现多平台的小程序的调试。
示例性地,用户通过在终端设备110上的调试器112提供的调试面板上点击或输入调试指令,调试器112可以将调试指令发送给终端设备120,终端设备120接收到调试指令之后可以对小程序进行调试,产生调试结果,然后可以将调试结果返回给调试器112,并在调试器112的调试面板上进行展示。
示例性地,由于模拟器111可以模拟小程序的运行,用户在调试器112的调试面板上输入或点击调试指令后,调试器112可以将调试指令发送给模拟器111,模拟器111接收到调试指令之后可以对小程序进行调试,产生调试结果,然后可以将调试结果返回给调试器112,并在调试器112的调试面板上进行展示。
示例性地,用户在调试面板上点击或输入调试指令可以是查看某变量a的值,则终端设备102返回的调试结果可以是该变量的值,如a=123。
图2是根据本申请的一个实施例的调试小程序的方法的流程图。
如图2所示,该调试小程序的方法200可以包括操作S210~操作S230。
在操作S210,根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块。
根据本申请的实施例,对于要进行调试的小程序,可以在小程序中写入一些调试代码,使得小程序被写入的调试代码划分为多个调试模块,对小程序的调试可以转化为对每个调试模块的调试。示例性地,可以根据实际需求,在需要进行断点调试的位置写入调试代码,使得小程序在运行到每个调试模块可以进行断点调试,多个调试模块具有执行顺序。
示例性地,调试模块可以在小程序的第2行、第3行、第5行、第6行和第9行均有需要进行断点调试的调试模块。用户可以选择其中的第2行、第3行和第9行作为本次调试的目标调试模块。
具体地,可以采用Google开源的Chrome调试面板做调试器。用户可以通过在开发工具上选中第2行、第3行和第9行,然后在调试面板上点击开始进行断点调试的指令,调试器可以将指令发送给模拟器或者真实运行终端。
需要说明的是,在真机运行环境下,调试器将指令发送给真实运行终端,在真机运行环境下,调试器将指令发送给开发工具中的模拟器。其中,小程序开发工具可以提供模拟小程序的模拟器,并且对模拟器的调试断点功能支持程度较好。
根据本申请的实施例,小程序的执行环境可以是在模拟器或者真实运行终端内的一个线程中,该线程例如为第一线程。模拟器或者真实运行终端在接收到调试指令之后,可以在第一线程中存储用户选中的第2行、第3行和第9行的位置信息,以表示第2行、第3行和第9行的调试模块为目标调试模块。
在操作S220,运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块。
根据本申请的实施例,在小程序运行到每一个调试模块时,调试模块会根据自身所在的位置与第一线程保存的目标调试模块的位置进行对比,以判断自身是否为目标调试模块,如果是,说明用户要对自身进行断点调试。此时,可以先将小程序当前的运行状态数据发送给调试器。运行状态数据可以包括位置信息,如当前运行至第几行,还有多少行等。还可以包括当前运行位置的一些具体变量信息等。调试器在接收到这些运行状态数据之后展示在调试面板上,以便用户查看。
根据本申请的实施例,当前的目标调试模块在将当前运行状态数据发送给调试器之后,需要中断运行,以便于用户进行断点调试操作。示例性地,在模拟器中,第一线程可以是worker线程,其中,worker线程是为JavaScript创造多线程环境产生的用于承担任务的多个线程的中的一个。worker线程可以使用Atomics.wait方法来中断小程序,即中断当前目标调试模块。在真实客户端中,可以使用能够实现断点的端能力来实现中断小程序,其中,端能力可以是终端能够实现的能力,可以使用软件程序实现,端能力还可以包括实现消息传递的消息端能力等。
在操作S230,根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。
根据本申请的实施例,小程序中断之后,等待调试器的调试指令。但是由于小程序中断,无法响应调试器直接发送的指令。本申请实施例在模拟器或真实客户端中设置第二线程用于接收调试器的调试指令,然后第二线程将调试指令进行存储,例如可以存储在预设的存储空间中。然后向第一线程发送唤醒指令,以唤醒中断处的目标调试模块。目标调试模块被唤醒后,可以读取被存储的调试指令,然后根据调试指令进行调试操作,以产生对应的调试结果。
根据本申请的实施例,第二线程主要作用是实现第一线程与调试器之间指令和消息的存储及转发。在模拟器中,第二线程可以是worker线程的一种。在真机运行环境下,可以使用能够实现消息传递的端能力来实现。
示例性地,调试指令可以是指示获取某变量a的值,目标调试模块可以在当前作用域下求解变量a的值,然后将变量a的值返回给第二线程,第二线程可以将变量a的值返回给调试器,调试器展示给用户。调试指令还可以是对目标调试模块中的某变量b赋值,调试指令中可以包括b=456的表达式,目标调试模块将当前作用域下的变量b赋值为456,然后将b=456的赋值成功的消息发送给第二线程,第二线程将消息转发给调试器。
根据本申请的实施例,在当前目标调试模块返回调试结果之后,当前目标调试模块继续中断以等待新的指令。
根据本申请的实施例,根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块,运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块,根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。由于在运行到目标调试模块时中断以等待调试指令,在调试指令到来后目标调试模块唤醒并进行调试,能够实现小程序的断点调试,提高调试效率和调试效果。
根据本申请的实施例,调试小程序的方法还包括存储接收到的第二调试指令并产生用于唤醒小程序的唤醒指令。
具体地,存储接收到的第二调试指令并产生唤醒指令是在第二线程中进行的。第二线程接收到调试器的调试指令之后,可以将调试指令进行存储。示例性地,在模拟器中,例如可以使用SharedArrayBuffer方法实现指令存储,SharedArrayBuffer可以来表示一个共享内存,在真实运行终端,可以使用终端的内存作为共享内存。第一线程和第二线程可以通过该共享内存进行通信。第二线程在将调试指令存储到共享内存之后,向第一线程发送唤醒指令,以唤醒中断处的目标调试模块,示例性地,在模拟器中,可以使用Atomics.notify方法唤醒worker线程。在真实运行终端,可以使用能够实现唤醒功能的端能力唤醒目标调试模块。
图3是根据本申请的一个实施例的根据第二调试指令来唤醒中断的目标调试模块进行调试的方法的流程图。
如图3所示,该方法可以包括操作S331~操作S332。
在操作S331,根据唤醒指令唤醒中断的目标调试模块。
在操作S332,获取所存储的第二调试指令,并根据所存储的第二调试指令对唤醒的目标调试模块进行调试。
根据本申请的实施例,第二线程在模拟器中可以使用Atomics.notify方法唤醒worker线程中的目标调试模块。在真实运行终端可以使用能够实现唤醒功能的端能力唤醒目标调试模块。目标调试模块被唤醒后,首先读取共享内存中调试指令,然后进行调试操作。
根据本申请的实施例,第二线程将接收的调试指令存储在共享内存,然后唤醒第一线程,第一线程被唤醒后读取共享内存中的指令,以进行调试。第一线程和第二线程能够通过共享内存进行通信,使得目标调试模块能够进行断点调试。
图4是根据本申请的另一个实施例的调试小程序的方法的流程图。
如图4所示,该方法可以包括操作S410~操作S420。
在操作S410,返回调试结果,并再次中断目标调试模块以等待下一个第二调试指令。
在操作S420,根据接收到的下一个第二调试指令来继续调试目标调试模块。
根据本申请的实施例,在当前目标调试模块返回调试结果之后,当前目标调试模块继续中断以等待新的指令。新的指令可以是继续对当前的目标调试模块进行调试的第二调试指令,则第二线程接收到调试器的新的调试指令之后,将新的调试指令存储至共享内存中。然后向第一线程发送唤醒指令,以唤醒中断处的目标调试模块。目标调试模块被唤醒后,可以读取被存储的新的调试指令,然后根据新的调试指令继续进行调试操作,以产生新的调试结果。然后将新的调试结果返回给第二线程,第二线程将新的调试结果发送给调试器,调试器将新的调试结果展示给用户。
示例性地,用户通过调试器在发送获取变量a的值的指令后,目标调试模块经调试返回a=123,用户在查看到a=123之后,又通过调试器发送a=456的指令,目标调试模块经调试后将a赋值为456,然后返回a=456的调试结果。
需要说明的是,在当前目标调试模块返回新的调试结果a=456之后,当前目标调试模块继续中断以等待下一个的指令。
图5是根据本申请的另一个实施例的调试小程序的方法的流程图。
如图5所示,该方法可以包括操作S510~操作S520。
在操作S510,返回当前目标调试模块的调试结果,并中断当前目标调试模块以等待第三调试指令。
在操作S520,根据接收到的第三调试指令结束当前目标调试模块并继续运行小程序至下一个目标调试模块。
根据本申请的实施例,在当前目标调试模块返回调试结果之后,当前目标调试模块继续中断以等待新的指令。新的指令可以指示结束当前目标调试模块,然后运行至下一个目标调试模块进行调试的第三调试指令。该下一个可以是当前目标调试模块之后的一个,也可以是用户指定的一个。例如当前目标调试模块可以是第二行的调试模块,下一个可以是第3行的调试模块也可以是用户指定的如第9行的目标调试模块。
根据本申请的实施例,第二线程接收到调试器的第三调试指令之后,将第三调试指令存储至共享内存中。然后向第一线程发送唤醒指令,以唤醒中断处的目标调试模块。目标调试模块被唤醒后,可以读取被存储的第三调试指令,然后根据第三调试指令结束当前调试模块,继续运行小程序直至运行到下一个目标调试模块如第9行的目标调试模块,然后将第9行的运行状态数据发送给第二线程,使第二线程发送给调试器。然后,第9行的目标调试模块中断运行,以等待对该模块进行调试的指令。
图6是根据本申请的另一个实施例的调试小程序的方法的流程图。
如图6所示,该方法可以包括操作S610~操作S620。
在操作S610,返回当前目标调试模块的调试结果,并中断当前目标调试模块以等待第四调试指令。
在操作S620,根据接收到的第四调试指令来结束当前目标调试模块,取消对目标调试模块的选择,并继续运行小程序,直至再次接收到第一调试指令。
根据本申请的实施例,在当前目标调试模块返回调试结果之后,当前目标调试模块继续中断以等待新的指令。新的指令可以指示结束所有目标调试模块断点调试的第四调试指令。
根据本申请的实施例,第二线程接收到调试器的第四调试指令之后,将第四调试指令存储至共享内存中。然后向第一线程发送唤醒指令,以唤醒中断处的目标调试模块。目标调试模块被唤醒后,可以读取被存储的第四调试指令,然后根据第四调试指令结束当前调试模块,并取消对目标调试模块的选择,继续运行小程序直至再次接收到选择目标调试模块进行断点调试的第一调试指令。
示例性地,第一线程读取第四调试指令之后,结束当前目标调试模块,并将取消选中的第2行、第3行和第9行的调试模块为目标调试模块。然后,可以向第二线程发送取消选择第2行、第3行和第9行的调试模块为目标调试模块的释放消息,第二线程将释放消息发送给调试器,调试器展示给用户,用户可以继续进行非断点调试。
图7是根据本申请的另一个实施例的调试小程序的方法的流程图。
如图7所示,该调试小程序的方法700可以包括操作S710~操作S730。
在操作S710,发送第一调试指令,第一调试指令指示多个调试模块中的至少一个调试模块为目标调试模块。
根据本申请的实施例,对于要进行调试的小程序,可以在小程序中写入一些调试代码,使得小程序被写入的调试代码划分为多个调试模块,对小程序的调试可以转化为对每个调试模块的调试。示例性地,可以根据实际需求,在需要进行断点调试的位置写入调试代码,使得小程序在运行到每个调试模块可以进行断点调试。
示例性地,用户可以选择要进行断点调试位置信息,则用户选中的位置处的调试模块为目标调试模块。例如,用户选择了第2行、第3行和第9行,则第2行、第3行和第9行的调试模块为目标调试模块。
根据本申请的实施例,用户在选择需要调试的位置之后,可以在调试面板上点击开始进行断点调试的指令,调试器可以将指令发送给被调试侧的模拟器或者真实运行终端,指令中包括用户选中的需要进行断点调试的位置信息。
在操作S720,响应于接收到小程序运行至目标调试模块时的运行数据,发送用于调试目标调试模块的第二调试指令。
在操作S730,接收目标测试模块的调试结果。
示例性地,调试器接收到模拟器或客户端发送的第2行的运行数据,说明小程序运行至第2行,并且已中断。用户可以在调试面板上点击或输入诸如查看变量的值等调试指令,调试器将调试指令发送给被调试侧的模拟器或客户端。被调试侧在响应调试指令产生调试结果之后,可以将调试结果返回到调试器,调试器将调试结果展示给用户,以便用户查看。
根据本申请的实施例,发送第一调试指令,以指令指示所述多个调试模块中的至少一个调试模块为目标调试模块,响应于接收到所述小程序运行至所述目标调试模块时的运行数据,发送用于调试所述目标调试模块的第二调试指令,接收所述目标测试模块的调试结果。由于发送第一指令以指示小程序在运行到目标调试模块时中断以等待调试指令,然后发送第二调试指令以唤醒目标调试模块并进行调试,能够实现小程序的断点调试,提高调试效率和调试效果。
根据本申请的实施例,该调试小程序的方法700还可以包括响应于接收到返回的调试结果,发送第三调试指令和第四调试指令中的至少之一;其中,第三调试指令指示结束当前目标调试模块并继续运行小程序至下一个目标调试模块;第四调试指令指示结束当前目标调试模块,取消对目标调试模块的选择,并继续运行小程序,直至再次接收到第一调试指令。
根据本申请的实施例,该调试小程序的方法700还可以包括接收释放消息,释放消息指示已取消对目标调试模块的选择。
根据本申请的实施例,调试器还可以发送第三调试指令,以指示被调试侧结束当前位置的断点调试,跳转到指定位置进行断点调试。例如,第三调试指令指示结束第2行的调试,跳转到第9行进行断点调试。
根据本申请的实施例,还可以发送第四调试指令,指示被调试侧结束当前位置的断点调试,并且取消对目标调试模块的选择,以结束断点调试,恢复非断点调试。在发送第四调试指令之后,会收到被调试侧发送的释放消息,该释放消息指令已经取消了对目标调试模块的选择,则可以继续进行非断点调试。
图8是根据本申请的一个实施例的在模拟环境下的调试小程序的方法的流程图。
如图8所示,该方法包括操作S8001~操作S8027。
在操作S8001,调试器将开始断点调试的第一指令发送给模拟器的第二线程,第二线程将第一指令发送给模拟器的第一线程。其中,指令中包括用户选中的需要进行断点调试的目标调试模块的位置信息。
示例性地,第一线程可以是worker线程,第二线程可以是控制程序,小程序运行在worker线程中。用户选中的需要进行断点调试的目标调试模块可以是第2行的调试模块、第3行的调试模块和第9行的调试模块。
在操作S8002,第一线程将用户选中的需要进行断点调试的目标调试模块的位置信息进行缓存。
示例性地,可以存储为数组[2,3,9]。
在操作S8003,小程序运行到目标调试模块之后,将当前断点的运行状态信息发送给第二线程,第二线程将运行状态信息发送给调试器。
示例性地,小程序运行到第2行的目标调试模块之后,第2行的目标调试模块将自身所在行数2与数组[2,3,9]中的行数进行对比,发现数组[2,3,9]中存在自身所在行数2,则可以通过worker.postMessage方法将当前位置的运行状态信息发送给第二线程,通过第二线程转发给调试器。
在操作S8004,调试器展示当前断点的运行状态数据并展示操作按钮,供用户操作。
在操作S8005,目标调试模块中断运行,当前断点生效,等待调试指令。
示例性地,目标调试模块通过Atomics.wait(SharedArrayBuffer)的方法来中断运行,并等待第二线程存入SharedArrayBuffer共享内存中的指令。
在操作S8006,用户在调试器提供的调试面板上操作查看变量的结果。
在操作S8007,调试器将求解变量的第二指令发送给第二线程,第二指令包括用户需要查看的变量名。
在操作S8008,第二线程将第二指令存储至共享内存,并产生用于唤醒小程序的唤醒指令,唤醒断点处的目标调试子模块。
示例性地,第二线程将第二指令存储至SharedArrayBuffer,然后通过Atomics.notify(SharedArrayBuffer)的方法产生唤醒指令,以唤醒目标调试模块。
在操作S8009,目标调试模块读取共享内存中的第二指令,并求解变量的值。
在操作S8010,目标调试模块将调试结果即变量的求解结果发送给第二线程,第二线程转发给调试器。
示例性地,目标调试模块通过worker.postMessage方法将变量的求解结果发送给第二线程。
在操作S8011,目标调试模块在当前断点的代码内循环。
示例性地,调试模块可以是在一个while循环中,while循环中可以设置跳出该while循环的条件,如果达到条件则跳出当前while,否则继续当前目标调试模块的while循环。例如,可以设置通过返回false跳出循环,返回true继续while循环。
在操作S8012,目标调试模块中断运行以保持断点。
示例性地,目标调试模块通过Atomics.wait(SharedArrayBuffer)的方法来中断运行,并等待第二线程存入SharedArrayBuffer共享内存中的指令。
在操作S8013,用户在调试面板上查看变量的求解结果。
在操作S8014,用户在调试面板上点击跳转到下一个目标调试模块。
示例性的,下一个目标调试模块可以是当前目标调试模块之后的第一个,也可以是用户指定位置处的目标调试模块。
在操作S8015,调试器将结束当前目标调试模块并跳转到下一个目标调试模块的第三调试指令发送给第二线程。
在操作S8016,第二线程将第三调试指令写入到共享内存,并产生用于唤醒小程序的唤醒指令,以唤醒断点处的目标调试子模块。
示例性地,第二线程将第三指令存储至SharedArrayBuffer,然后通过Atomics.notify(SharedArrayBuffer)的方法产生唤醒指令,以唤醒目标调试模块。
在操作S8017,目标调试模块读取共享内存中的第三指令,结束当前目标调试模块的运行。
示例性地,可以通过返回true跳出当前目标调试模块的while循环,以结束当前目标调试模块的运行。
在操作S8018,继续运行小程序,直至运行至下一个断点的目标调试模块。
在操作S8019,目标调试模块将当前断点的运行状态信息发送给第二线程,第二线程将运行状态信息发送给调试器。
在操作S8020,目标调试模块中断运行,当前断点生效,等待调试指令。
在操作S8021,用户在调试面板上点击结束所有断点调试的操作。
在操作S8022,调试器将结束断点调试的第四指令发送给第二线程。
在操作S8023,第二线程将第四指令写入到共享内存,并产生用于唤醒小程序的唤醒指令,以唤醒断点处的目标调试子模块。
在操作S8024,目标调试模块读取共享内存中的第四指令,结束当前目标调试模块的运行。
在操作S8025,第一线程将释放断点的消息发送给第二线程,第二线程将释放断点的消息发送给调试器。
在操作S8026,调试器恢复到非断点调试状态。
在操作S8027,第一线程中的小程序继续运行,若后续接收到新的用户选中目标调试模块进行断点调试的第一指令,则重复上述过程。如果后续没有接收到第一指令,则继续执行到结束。
图9是根据本申请的一个实施例的在真实环境下的调试小程序的方法的流程图。
如图9所示,该方法包括操作S9001~操作S9027。
根据本申请的实施例,由于在真实环境下,小程序运行在真实客户机中,调试器和客户机的交互可以通过云服务器进行转发。
在操作S9001,调试器将开始断点调试的第一指令发送给云服务器,云服务器将第一指令发送给客户端的第二线程,第二线程将第一指令发送给客户端的第一线程。其中,指令中包括用户选中的需要进行断点调试的目标调试模块的位置信息。
示例性地,第一线程和第二线程均可以是客户端中的用于调试小程序的应用程序,小程序运行在第一线程中。
在操作S9002,第一线程将用户选中的需要进行断点调试的目标调试模块的位置信息进行缓存。
在操作S9003,小程序运行到目标调试模块之后,将当前断点的运行状态信息发送给第二线程,第二线程将运行状态信息发送给云服务器,云服务器转发给调试器。
在操作S9004,调试器展示当前位置的运行状态数据并展示操作按钮,供用户操作。
在操作S9005,目标调试模块中断运行,当前断点生效,等待调试指令。
示例性地,目标调试模块可以通过端能力实现中断,客户端的端能力可以是能够实现各种能力的方法,通过编写程序实现。
在操作S9006,用户在调试器提供的调试面板上操作查看变量的结果。
在操作S9007,调试器将求解变量的第二指令发送给云服务器,云服务器转发给客户端的第二线程,第二指令包括用户需要查看的变量名。
在操作S9008,第二线程将第二指令存储至共享内存,通过端能力唤醒目标调试模块。
在操作S9009,目标调试模块读取共享内存中的第二指令,并求解变量的值。
在操作S9010,目标调试模块通过消息传递端能力将变量的求解结果发送给第二线程,第二线程将求解结果发送给云服务器,云服务器转发给调试器。
在操作S9011,目标调试模块在当前断点的代码内循环。
在操作S9012,目标调试模块通过断点端能力中断运行以保持断点。
在操作S9013,用户在调试面板上查看变量的求解结果。
在操作S9014,用户在调试面板上点击跳转到下一个目标调试模块。
示例性的,下一个目标调试模块可以是当前目标调试模块之后的第一个,也可以是用户指定位置处的目标调试模块。
在操作S9015,调试器将结束当前目标调试模块并跳转到下一个目标调试模块的第三调试指令发送给云服务器,云服务器转发给客户端的第二线程。
在操作S9016,第二线程将第三调试指令写入到共享内存,通过端能力唤醒目标调试模块。
示例性地,共享内存为客户端的内存。
在操作S9017,目标调试模块读取共享内存中的第三指令,结束当前目标调试模块的运行。
在操作S9018,继续运行小程序,直至运行至下一个断点的目标调试模块。
在操作S9019,目标调试模块将当前断点的运行状态信息发送给第二线程,第二线程将运行状态信息发送给云服务器,云服务器转发给调试器。
在操作S9020,目标调试模块中断运行,断点生效,等待调试指令。
在操作S9021,用户在调试面板上点击结束所有断点调试的操作。
在操作S9022,调试器将结束断点调试的第四指令发送给第二线程。
在操作S9023,第二线程将第四指令写入到共享内存,并通过端能力唤醒第一线程。
在操作S9024,目标调试模块读取共享内存中的第四指令,结束当前目标调试模块的运行。
在操作S9025,第一线程将释放断点的消息通过消息传递端能力发送给第二线程,第二线程将释放断点的消息发送给云服务器,云服务器转发给调试器。
在操作S9026,调试器恢复到非断点调试状态。
在操作S9027,第一线程中的小程序继续运行,若后续接收到新的用户选中目标调试模块进行断点调试的第一指令,则重复上述过程。如果后续没有接收到第一指令,则继续执行到结束。
图10是根据本申请的一个实施例的调试小程序的装置的框图。
如图10所示,该调试小程序的装置1000可以包括选择模块1001、第一中断模块1002和第一调试模块1003。
选择模块1001用于根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块;
第一中断模块1002用于运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块;
第一调试模块1003用于根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。
根据本申请的实施例,该调试小程序的装置1000还可以包括处理模块。
处理模块用于存储接收到的第二调试指令并产生用于唤醒小程序的唤醒指令。
第一调试模块1003包括第一唤醒单元和调试单元。
第一唤醒单元用于根据唤醒指令唤醒中断的目标调试模块。
调试单元用于获取所存储的第二调试指令,并根据所存储的第二调试指令对唤醒的目标调试模块进行调试。
根据本申请的实施例,该调试小程序的装置1000还可以包括第一发送模块。
第一发送模块用于在确定小程序运行至目标调试模块的情况下,在中断目标调试模块之前发送小程序的当前运行数据。
根据本申请的实施例,该调试小程序的装置1000还可以包括第二中断模块和第二调试模块。
第二中断模块用于返回调试结果,并再次中断目标调试模块以等待下一个第二调试指令。
第二调试模块用于根据接收到的下一个第二调试指令来继续调试目标调试模块。
根据本申请的实施例,目标调试模块有多个。该调试小程序的装置1000还可以包括第三中断模块和第一运行模块。
第三中断模块用于返回当前目标调试模块的调试结果,并中断当前目标调试模块以等待第三调试指。
第一运行模块用于根据接收到的第三调试指令结束当前目标调试模块并继续运行小程序至下一个目标调试模块。
根据本申请的实施例,该调试小程序的装置1000还可以包括第四中断模块和第二运行模块。
第四中断模块用于返回当前目标调试模块的调试结果,并中断当前目标调试模块以等待第四调试指令。
第二运行模块用于根据接收到的第四调试指令来结束当前目标调试模块,取消对目标调试模块的选择,并继续运行小程序,直至再次接收到第一调试指令。
根据本申请的实施例,该调试小程序的装置1000还可以包括第二发送模块。
第二发送模块用于在取消对目标调试模块的选择之后发送释放消息,释放消息指示已取消对目标调试模块的选择。
根据本申请的实施例,选择目标调试模块、运行小程序和调试目标调试模块是在第一线程中进行的,第一调试指令和第二调试指令是在第二线程中接收的,调试结果是在第二线程中返回的。
根据本申请的实施例,小程序的运行是在模拟环境或真实环境中进行的。
图11是根据本申请的一个实施例的调试小程序的装置的框图。
如图11所示,该调试小程序的装置1100可以包括第一发送模块1101、第二发送模块1102和第一接收模块1103。
第一发送模块1101用于发送第一调试指令,第一调试指令指示选择多个调试模块中的至少一个调试模块为目标调试模块。
第二发送模块1102用于响应于接收到小程序运行至目标调试模块时的运行数据,发送用于调试目标调试模块的第二调试指令。
第一接收模块1103用于接收目标测试模块的调试结果。
根据本申请的实施例,该调试小程序的装置1100可以包括第三发送模块。
第三发送模块用于响应于接收到返回的调试结果,发送第三调试指令和第四调试指令中的至少之一;其中,第三调试指令指示结束当前目标调试模块并继续运行小程序至下一个目标调试模块;第四调试指令指示结束当前目标调试模块,取消对目标调试模块的选择,并继续运行小程序,直至再次接收到第一调试指令。
根据本申请的实施例,该调试小程序的装置1100还可以包括第二接收模块。
第二接收模块用于接收释放消息,释放消息指示已取消对目标调试模块的选择。
如图12所示,是根据本申请一个实施例的调试小程序的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图12所示,该电子设备1200包括:一个或多个处理器1201、存储器1202,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图12中以一个处理器1201为例。
存储器1202即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的调试小程序的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的调试小程序的方法。
存储器1202作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的调试小程序的方法对应的程序指令/模块(例如,附图10所示的选择模块1001、第一中断模块1002和第一调试模块1003,以及/或者,附图11所示的第一发送模块1101、第二发送模块1102和第一接收模块1103)。处理器1201通过运行存储在存储器1202中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的调试小程序的方法。
存储器1202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据调试小程序的方法的电子设备1200的使用所创建的数据等。此外,存储器1202可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1202可选包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至调试小程序的方法的电子设备1200。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
调试小程序的方法的电子设备1200还可以包括:输入装置1203和输出装置1204。处理器1201、存储器1202、输入装置1203和输出装置1204可以通过总线或者其他方式连接,图12中以通过总线连接为例。
输入装置1203可接收输入的数字或字符信息,以及产生与调试小程序的方法的电子设备1200的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1204可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块,运行小程序,使得小程序在运行至每个目标调试模块时中断目标调试模块,根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。由于在运行到目标调试模块时中断以等待调试指令,在调试指令到来后目标调试模块唤醒并进行调试,能够实现小程序的断点调试,提高调试效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (16)

1.一种调试小程序的方法,所述小程序包括多个调试模块,所述方法包括:
根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块;
运行所述小程序,使得所述小程序在运行至目标调试模块时中断所述目标调试模块;
根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。
2.根据权利要求1所述的方法,还包括:存储接收到的第二调试指令并产生用于唤醒所述小程序的唤醒指令;
所述根据第二调试指令来唤醒中断的目标调试模块进行调试包括:
根据所述唤醒指令唤醒中断的目标调试模块;
获取所存储的第二调试指令,并根据所存储的第二调试指令对唤醒的目标调试模块进行调试。
3.根据权利要求1所述的方法,还包括:在确定所述小程序运行至所述目标调试模块的情况下,在中断所述目标调试模块之前发送所述小程序的当前运行数据。
4.根据权利要求1所述的方法,还包括:
返回调试结果,并再次中断所述目标调试模块以等待下一个第二调试指令;
根据接收到的下一个第二调试指令来继续调试所述目标调试模块。
5.根据权利要求1所述的方法,所述目标调试模块有多个,所述方法还包括:
返回当前目标调试模块的调试结果,并中断当前目标调试模块以等待第三调试指令;
根据接收到的第三调试指令结束当前目标调试模块并继续运行所述小程序至下一个目标调试模块。
6.根据权利要求1所述的方法,所述目标调试模块有多个,所述方法还包括:
返回当前目标调试模块的调试结果,并中断当前目标调试模块以等待第四调试指令;
根据接收到的第四调试指令来结束当前目标调试模块,取消对目标调试模块的选择,并继续运行所述小程序,直至再次接收到所述第一调试指令。
7.根据权利要求6所述的方法,还包括:在取消对目标调试模块的选择之后发送释放消息,所述释放消息指示已取消对目标调试模块的选择。
8.根据权利要求1至7中任一项所述的方法,其中,所述选择目标调试模块、运行所述小程序和调试目标调试模块是在第一线程中进行的,所述第一调试指令和所述第二调试指令是在第二线程中接收的,所述调试结果是在第二线程中返回的。
9.根据权利要求1至7中任一项所述的方法,其中,所述小程序的运行是在模拟环境或真实环境中进行的。
10.一种调试小程序的方法,所述小程序包括多个调试模块,所述方法包括:
发送第一调试指令,所述第一调试指令指示所述多个调试模块中的至少一个调试模块为目标调试模块;
响应于接收到所述小程序运行至所述目标调试模块时的运行数据,发送用于调试所述目标调试模块的第二调试指令;
接收所述目标测试模块的调试结果。
11.根据权利要求10所述的方法,还包括:
响应于接收到返回的调试结果,发送第三调试指令和第四调试指令中的至少之一;
其中,所述第三调试指令指示结束当前目标调试模块并继续运行所述小程序至下一个目标调试模块;
所述第四调试指令指示结束当前目标调试模块,取消对目标调试模块的选择,并继续运行所述小程序,直至再次接收到所述第一调试指令。
12.根据权利要求10所述的方法,还包括:
接收释放消息,所述释放消息指示已取消对目标调试模块的选择。
13.一种调试小程序的装置,所述小程序包括多个调试模块,所述装置包括:
选择模块,用于根据第一调试指令选择多个调试模块中的至少一个调试模块作为目标调试模块;
第一中断模块,用于运行所述小程序,使得所述小程序在运行至目标调试模块时中断所述目标调试模块;
第一调试模块,用于根据第二调试指令来唤醒中断的目标调试模块进行调试,产生调试结果。
14.一种调试小程序的装置,所述小程序包括多个调试模块,所述装置包括:
第一发送模块,用于发送第一调试指令,所述第一调试指令指示选择所述多个调试模块中的至少一个调试模块为目标调试模块;
第二发送模块,用于响应于接收到所述小程序运行至所述目标调试模块时的运行数据,发送用于调试所述目标调试模块的第二调试指令;
第一接收模块,用于接收所述目标测试模块的调试结果。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任一项所述的方法,或者执行权利要求10至12中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至9中任一项所述的方法,或者执行权利要求10至12中任一项所述的方法。
CN202011282569.3A 2020-11-16 2020-11-16 调试小程序的方法、装置、电子设备和存储介质 Active CN112214416B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202011282569.3A CN112214416B (zh) 2020-11-16 2020-11-16 调试小程序的方法、装置、电子设备和存储介质
PCT/CN2021/091891 WO2022100033A1 (zh) 2020-11-16 2021-05-06 调试小程序的方法、装置、电子设备和存储介质
EP21823719.6A EP4027246B1 (en) 2020-11-16 2021-05-06 Method and apparatus for debugging applet, electronic device and storage medium
US17/597,083 US20220374331A1 (en) 2020-11-16 2021-05-06 Method of debugging applet, electronic device, and storage medium
JP2021576737A JP7241931B2 (ja) 2020-11-16 2021-05-06 ミニプログラムをデバッグする方法、装置、電子機器、記憶媒体及びコンピュータプログラム
KR1020217041768A KR20220002690A (ko) 2020-11-16 2021-05-06 미니프로그램을 디버깅하는 방법, 장치, 전자장비, 저장 매체 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011282569.3A CN112214416B (zh) 2020-11-16 2020-11-16 调试小程序的方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN112214416A true CN112214416A (zh) 2021-01-12
CN112214416B CN112214416B (zh) 2023-08-29

Family

ID=74057068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011282569.3A Active CN112214416B (zh) 2020-11-16 2020-11-16 调试小程序的方法、装置、电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN112214416B (zh)
WO (1) WO2022100033A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948245A (zh) * 2021-02-26 2021-06-11 北京百度网讯科技有限公司 元素调试方法、装置、设备、存储介质及程序产品
WO2022100033A1 (zh) * 2020-11-16 2022-05-19 百度在线网络技术(北京)有限公司 调试小程序的方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130263094A1 (en) * 2012-03-29 2013-10-03 International Business Machines Corporation Setting breakpoints in optimized instructions
CN110032512A (zh) * 2019-03-28 2019-07-19 腾讯科技(深圳)有限公司 一种小程序的调试方法、相关设备及终端
CN110837473A (zh) * 2019-11-07 2020-02-25 腾讯科技(深圳)有限公司 应用程序调试方法、装置、终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704321A (zh) * 2019-09-27 2020-01-17 京东数字科技控股有限公司 程序调试方法和装置
CN110795354A (zh) * 2019-10-30 2020-02-14 北京小米移动软件有限公司 信息处理方法、装置及存储介质
CN112214416B (zh) * 2020-11-16 2023-08-29 百度在线网络技术(北京)有限公司 调试小程序的方法、装置、电子设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130263094A1 (en) * 2012-03-29 2013-10-03 International Business Machines Corporation Setting breakpoints in optimized instructions
CN110032512A (zh) * 2019-03-28 2019-07-19 腾讯科技(深圳)有限公司 一种小程序的调试方法、相关设备及终端
CN110837473A (zh) * 2019-11-07 2020-02-25 腾讯科技(深圳)有限公司 应用程序调试方法、装置、终端及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022100033A1 (zh) * 2020-11-16 2022-05-19 百度在线网络技术(北京)有限公司 调试小程序的方法、装置、电子设备和存储介质
CN112948245A (zh) * 2021-02-26 2021-06-11 北京百度网讯科技有限公司 元素调试方法、装置、设备、存储介质及程序产品
CN112948245B (zh) * 2021-02-26 2024-03-01 北京百度网讯科技有限公司 元素调试方法、装置、设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN112214416B (zh) 2023-08-29
WO2022100033A1 (zh) 2022-05-19

Similar Documents

Publication Publication Date Title
US8671393B2 (en) Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
US8904356B2 (en) Collaborative software debugging in a distributed system with multi-member variable expansion
US20120278790A1 (en) Collaborative Software Debugging In A Distributed System With Real-Time Variable Modification Indicators
US20120084758A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Variable Evaluation
US8656360B2 (en) Collaborative software debugging in a distributed system with execution resumption on consensus
CN112486820B (zh) 用于测试代码的方法、装置、设备以及存储介质
US9009673B2 (en) Collaborative software debugging in a distributed system with collaborative step over operation
US8850397B2 (en) Collaborative software debugging in a distributed system with client-specific display of local variables
CN112235417B (zh) 调试指令的发送方法、装置
CN110750463A (zh) 一种小程序测试方法、装置、系统、设备及介质
CN112214416B (zh) 调试小程序的方法、装置、电子设备和存储介质
EP4075283A1 (en) Method and apparatus for continuous integration testing
CN112286656A (zh) 小程序模拟方法、装置、电子设备和计算机可读存储介质
CN112540914A (zh) 单元测试的执行方法、执行装置、服务器和存储介质
US20120102467A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Display Location Upon Event Notification
CN111625949A (zh) 一种仿真引擎系统、仿真处理方法、设备和介质
CN111611168A (zh) 联调测试方法、装置及系统
CN111178937B (zh) 应用的用户奖励方法、装置、电子设备及可读存储介质
CN111399811A (zh) 可视化页面开发的方法、装置、设备以及存储介质
EP4027246B1 (en) Method and apparatus for debugging applet, electronic device and storage medium
CN114416578A (zh) 测试方法和装置
EP3528126B1 (en) Representing a test execution of a software application using extended reality
CN113296772A (zh) 页面配置方法、装置、计算机设备及可读存储介质
CN111767170A (zh) 设备的操作复原方法、装置、设备以及存储介质
CN113220562A (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