CN109739763B - 代码段运行方法、装置、终端及存储介质 - Google Patents
代码段运行方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN109739763B CN109739763B CN201811637019.1A CN201811637019A CN109739763B CN 109739763 B CN109739763 B CN 109739763B CN 201811637019 A CN201811637019 A CN 201811637019A CN 109739763 B CN109739763 B CN 109739763B
- Authority
- CN
- China
- Prior art keywords
- terminal
- instruction
- target instruction
- code segment
- breakpoint
- 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
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000004891 communication Methods 0.000 claims abstract description 156
- 230000008569 process Effects 0.000 claims abstract description 45
- 238000011022 operating instruction Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 230000003993 interaction Effects 0.000 abstract description 8
- 230000004048 modification Effects 0.000 abstract description 6
- 238000012986 modification Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 238000011017 operating method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本公开是关于一种代码段运行方法、装置、终端及存储介质,属于计算机技术领域。方法包括:建立与第二终端之间的通信连接;当确定第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代第一目标指令的第二目标指令;通过通信连接,向第二终端发送携带第二目标指令的第一运行请求,指示第二终端以第二目标指令作为第一目标指令的替代指令,继续运行代码段。通过第一终端与第二终端之间建立的通信连接进行交互,能够在第二终端运行代码段的过程中对代码段进行修改,操作便捷,并且能够以指令为单位进行修改,只需将修改后的指令发送给第二终端,无需发送修改后的整个代码段,降低了耗费的传输资源,缩短了传输时间。
Description
技术领域
本公开是关于计算机技术领域,具体来说是关于一种代码段运行方法、装置、终端及存储介质。
背景技术
随着计算机技术的迅速发展,应用程序的功能逐渐增多,规模逐渐扩大,应用程序测试已成为检验应用程序质量必不可少的步骤。技术人员开发出应用程序的代码段后,通常需要运行该代码段,得到运行结果,从而根据运行结果对代码段进行优化改进。
如图1所示,第一终端与第二终端建立通信连接。技术人员通过第一终端开发出应用程序的第一代码段,将该第一代码段存储于第一终端中。当技术人员要对第一代码段进行测试时,由第一终端通过该通信连接向第二终端发送该第一代码段,由第二终端运行该第一代码段,运行完成时得到运行结果,技术人员可以在第二终端上查看运行结果。当技术人员需要对第一代码段进行修改时,在第一终端上对第一代码段进行修改,得到第二代码段,由第一终端通过该通信连接向第二终端发送第二代码段,由第二终端运行该第二代码段,运行完成时得到运行结果。
上述方案中只能在代码段运行完成之后才能对代码段进行修改,操作不便,且仅能以代码段为单位进行修改,修改代码段后需要向第二终端发送修改后的代码段,耗费了过多的传输资源和传输时间。
发明内容
本公开提供一种代码段运行方法、装置、终端及存储介质,可以解决相关技术的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种代码段运行方法,应用于第一终端,所述方法包括:
建立与第二终端之间的通信连接;
当确定所述第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代所述第一目标指令的第二目标指令;
通过所述通信连接,向所述第二终端发送第一运行请求,所述第一运行请求携带所述第二目标指令,所述第一运行请求用于指示所述第二终端以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
在一种可能实现的方式中,所述方法还包括:
显示所述代码段中的至少一条指令;
当检测到对所述第一目标指令的断点设置操作时,通过所述通信连接,向所述第二终端发送断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,用于指示所述第二终端为所述地址信息对应的所述第一目标指令设置断点,使所述第二终端运行所述第一目标指令的上一条指令后基于所述断点停止运行。
在另一种可能实现的方式中,所述方法还包括:
当检测到对所述第一目标指令的断点取消操作时,通过所述通信连接,向所述第二终端发送断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息,用于指示所述第二终端取消为所述地址信息对应的所述第一目标指令设置的断点。
在另一种可能实现的方式中,所述方法还包括:
当检测到重新运行操作时,通过所述通信连接,向所述第二终端发送第二运行请求,所述第二运行请求用于指示所述第二终端从所述代码段的第一条指令开始,重新运行所述代码段。
在另一种可能实现的方式中,所述方法还包括:
当通过所述通信连接接收到所述第二终端发送的运行状态信息时,显示所述运行状态信息。
在另一种可能实现的方式中,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
根据本公开实施例的第二方面,提供了一种代码段运行方法,应用于第二终端,所述方法包括:
建立与第一终端之间的通信连接;
运行代码段中第一目标指令的上一条指令后停止运行;
通过所述通信连接,接收所述第一终端发送的第一运行请求,所述第一运行请求携带用于替代所述第一目标指令的第二目标指令;
以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
在一种可能实现的方式中,所述方法还包括:
在运行所述代码段的过程中,通过所述通信连接,接收所述第一终端发送的断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,根据所述地址信息,为所述第一目标指令设置断点;
所述运行代码段中第一目标指令的上一条指令后停止运行,包括:当运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
在另一种可能实现的方式中,所述当运行所述第一目标指令的上一条指令后,基于所述断点停止运行,包括:
继续运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行;或者,
接收所述第一终端通过所述通信连接发送的第二运行请求,基于所述第二运行请求,从所述代码段的第一条指令开始,重新运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
在另一种可能实现的方式中,所述方法还包括:
通过所述通信连接,接收所述第一终端发送的断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息;
取消为所述地址信息对应的所述第一目标指令设置的断点。
在另一种可能实现的方式中,所述方法还包括:
获取所述代码段的运行状态信息;
通过所述通信连接,向所述第一终端发送所述运行状态信息。
在另一种可能实现的方式中,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
根据本公开实施例的第三方面,提供了一种代码段运行装置,所述装置包括:
连接模块,用于建立与第二终端之间的通信连接;
获取模块,用于当确定所述第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代所述第一目标指令的第二目标指令;
第一发送模块,用于通过所述通信连接,向所述第二终端发送第一运行请求,所述第一运行请求携带所述第二目标指令,所述第一运行请求用于指示所述第二终端以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
在一种可能实现的方式中,所述装置还包括:
第一显示模块,用于显示所述代码段中的至少一条指令;
第二发送模块,用于当检测到对所述第一目标指令的断点设置操作时,通过所述通信连接,向所述第二终端发送断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,用于指示所述第二终端为所述地址信息对应的所述第一目标指令设置断点,使所述第二终端运行所述第一目标指令的上一条指令后基于所述断点停止运行。
在另一种可能实现的方式中,所述装置还包括:
第三发送模块,用于当检测到对所述第一目标指令的断点取消操作时,通过所述通信连接,向所述第二终端发送断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息,用于指示所述第二终端取消为所述地址信息对应的所述第一目标指令设置的断点。
在另一种可能实现的方式中,所述装置还包括:
第四发送模块,用于当检测到重新运行操作时,通过所述通信连接,向所述第二终端发送第二运行请求,所述第二运行请求用于指示所述第二终端从所述代码段的第一条指令开始,重新运行所述代码段。
在另一种可能实现的方式中,所述装置还包括:
第二显示模块,用于当通过所述通信连接接收到所述第二终端发送的运行状态信息时,显示所述运行状态信息。
在另一种可能实现的方式中,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
根据本公开实施例的第四方面,提供了一种代码段运行装置,所述装置包括:
连接模块,用于建立与第一终端之间的通信连接;
运行模块,用于运行代码段中第一目标指令的上一条指令后停止运行;
第一接收模块,用于通过所述通信连接,接收所述第一终端发送的第一运行请求,所述第一运行请求携带用于替代所述第一目标指令的第二目标指令;
所述运行模块,还用于以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
在一种可能实现的方式中,所述装置还包括:
第二接收模块,用于在运行所述代码段的过程中,通过所述通信连接,接收所述第一终端发送的断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,根据所述地址信息,为所述第一目标指令设置断点;
所述运行模块,还用于当运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
在另一种可能实现的方式中,所述运行模块还用于继续运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行;或者,接收所述第一终端通过所述通信连接发送的第二运行请求,基于所述第二运行请求,从所述代码段的第一条指令开始,重新运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
在另一种可能实现的方式中,所述装置还包括:
第三接收模块,用于通过所述通信连接,接收所述第一终端发送的断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息;
取消模块,用于取消为所述地址信息对应的所述第一目标指令设置的断点。
在另一种可能实现的方式中,所述装置还包括:
获取模块,用于获取所述代码段的运行状态信息;
发送模块,用于通过所述通信连接,向所述第一终端发送所述运行状态信息。
在另一种可能实现的方式中,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
根据本公开实施例的第五方面,提供了一种第一终端,所述第一终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
建立与第二终端之间的通信连接;
当确定所述第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代所述第一目标指令的第二目标指令;
通过所述通信连接,向所述第二终端发送第一运行请求,所述第一运行请求携带所述第二目标指令,所述第一运行请求用于指示所述第二终端以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
根据本公开实施例的第六方面,提供了一种第二终端,所述第二终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
建立与第一终端之间的通信连接;
运行代码段中第一目标指令的上一条指令后停止运行;
通过所述通信连接,接收所述第一终端发送的第一运行请求,所述第一运行请求携带用于替代所述第一目标指令的第二目标指令;
以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
根据本公开实施例的第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如第一方面所述的代码段运行方法中所运行的操作。
根据本公开实施例的第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如第二方面所述的代码段运行方法中所运行的操作。
本公开实施例提供的代码段运行方法、装置、终端及存储介质,第一终端与第二终端建立通信连接,在第二终端运行代码段的过程中,第一终端显示该代码段中的至少一条指令,当检测到对至少一条指令中第一目标指令的断点设置操作时,通过通信连接向第二终端发送携带地址信息的断点设置请求,第二终端接收到该断点设置请求时,根据地址信息,为第一目标指令设置断点,当运行第一目标指令的上一条指令后,基于该断点停止运行,第一终端获取用于替代第一目标指令的第二目标指令,通过通信连接向第二终端发送携带该第二目标指令的第一运行请求,第二终端接收该第一运行请求,以第二目标指令作为第一目标指令的替代指令,继续运行所述代码段。本公开实施例中,通过第一终端与第二终端之间建立的通信连接进行交互,能够在第二终端运行代码段的过程中对代码段进行修改,操作便捷,并且能够以指令为单位进行修改,只需将修改后的指令发送给第二终端,无需发送修改后的整个代码段,降低了耗费的传输资源,缩短了传输时间。
通过在代码段中设置断点,可以在运行代码段的过程中,根据该断点停止运行代码段中的指令,便于对代码段终中的指令进行管理。
并且,第一终端可以显示第二终端运行代码段的运行状态信息,使技术人员在对代码段进行测试的过程中确定运行状态,能够根据运行状态信息及时做出正确的决策,实现对代码段的进一步修改,缩短了代码段的测试时间,提高了测试效率。
并且,本公开实施例中,第二终端与第一终端可以通过USB连接线进行通信连接,无需第一终端与第二终端连接互联网,也无需第一终端与第二终端在同一局域网中,即使在没有网络连接的情况下也可以运行代码段,得到运行结果,操作简单易行。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据相关技术示出的一种代码段运行方法的示意图;
图2是根据一示例性实施例示出的一种实施环境的示意图;
图3是根据一示例性实施例示出的一种代码段运行方法的流程图;
图4是根据一示例性实施例示出的一种代码段运行方法的流程图;
图5是根据一示例性实施例示出的一种代码段运行方法的流程图;
图6是根据一示例性实施例示出的一种代码段运行方法的流程图;
图7是根据一示例性实施例示出的一种代码段运行装置的结构示意图;
图8是根据一示例性实施例示出的一种代码段运行装置的结构示意图;
图9是根据一示例性实施例示出的一种终端的框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本公开做进一步详细说明。在此,本公开的示意性实施方式及其说明用于解释本公开,但并不作为对本公开的限定。
本公开实施例提供一种代码段运行方法、装置、终端及存储介质,以下结合附图对本公开进行详细说明。
首先,本公开实施例提供了一种实施环境,如图2所示,该实施环境包括第一终端201和第二终端202,该第一终端201和该第二终端202可以为手机、计算机、平板电脑等多种类型的设备。
该第一终端201和该第二终端202可以安装多种应用程序,包括浏览器程序、即时通信程序、电子支付程序、办公程序、视频播放程序等。每个应用程序包括至少一个代码段,每个代码段包括至少一条指令,通过在第一终端201或第二终端202运行应用程序的至少一个代码段,可以实现应用程序的至少一项功能。
本公开实施例提供了一种代码段运行方法,第一终端201与第二终端202之间建立通信连接,在第二终端202运行代码段的过程中,通过与第一终端201之间的通信连接,向第一终端201发送代码段和代码段的运行状态信息。在第二终端202运行代码段的过程中,技术人员可以在第一终端201上对代码段进行修改,由第二终端运行修改后的代码段,得到修改后的代码段的运行结果,根据运行结果确定修改后的代码段的运行状态。
图3是根据一示例性实施例示出的一种代码段运行方法的流程图,应用于图2所示实施例的第一终端中,如图3所示,包括以下步骤:
在步骤301中,建立与第二终端之间的通信连接。
在步骤302中,当确定第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代第一目标指令的第二目标指令。
在步骤303中,通过通信连接,向第二终端发送第一运行请求,第一运行请求携带第二目标指令,第一运行请求用于指示第二终端以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
本公开实施例提供的方法,建立与第二终端之间的通信连接,当确定第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代第一目标指令的第二目标指令,通过通信连接向第二终端发送携带第二目标指令的第一运行请求,从而指示第二终端以第二目标指令作为第一目标指令的替代指令,继续运行代码段。通过第一终端与第二终端之间建立的通信连接进行交互,能够在第二终端运行代码段的过程中对代码段进行修改,操作便捷,并且能够以指令为单元进行修改,只需将修改后的指令发送给第二终端,无需发送修改后的整个代码段,降低了耗费的传输资源,缩短了传输时间。
在一种可能实现方式中,方法还包括:
显示代码段中的至少一条指令;
当检测到对第一目标指令的断点设置操作时,通过通信连接,向第二终端发送断点设置请求,断点设置请求携带第一目标指令的地址信息,用于指示第二终端为地址信息对应的第一目标指令设置断点,使第二终端运行第一目标指令的上一条指令后基于断点停止运行。
在另一种可能实现的方式中,方法还包括:
当检测到对第一目标指令的断点取消操作时,通过通信连接,向第二终端发送断点取消请求,断点取消请求携带第一目标指令的地址信息,用于指示第二终端取消为地址信息对应的第一目标指令设置的断点。
在另一种可能实现的方式中,方法还包括:
当检测到重新运行操作时,通过通信连接,向第二终端发送第二运行请求,第二运行请求用于指示第二终端从代码段的第一条指令开始,重新运行代码段。
在另一种可能实现的方式中,方法还包括:
当通过通信连接接收到第二终端发送的运行状态信息时,显示运行状态信息。
在另一种可能实现的方式中,运行状态信息包括第二终端当前显示的程序界面、代码段的运行统计数据或第二终端当前运行指令的地址信息中的至少一项。
图4是根据一示例性实施例示出的一种代码段运行方法的流程图,应用于图2所示实施例的第二终端中,如图4所示,包括以下步骤:
在步骤401中,建立与第一终端之间的通信连接。
在步骤402中,运行代码段中第一目标指令的上一条指令后停止运行。
在步骤403中,通过通信连接,接收第一终端发送的第一运行请求,第一运行请求携带用于替代第一目标指令的第二目标指令。
在步骤404中,以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
本公开实施例提供的方法,建立与第一终端之间的通信连接,运行代码段中第一目标指令的上一条指令后停止运行,通过通信连接,接收第一终端发送的携带用于替代第一目标指令的第二目标指令的第一运行请求,以第二目标指令作为第一目标指令的替代指令,继续运行代码段。通过第一终端与第二终端之间建立的通信连接进行交互,第一终端能够在第二终端运行代码段的过程中对代码段进行修改,操作便捷,并且能够以指令为单元进行修改,只需将修改后的指令发送给第二终端,无需发送修改后的整个代码段,降低了耗费的传输资源,缩短了传输时间。
在一种可能实现的方式中,方法还包括:
在运行代码段的过程中,通过通信连接,接收第一终端发送的断点设置请求,断点设置请求携带第一目标指令的地址信息,根据地址信息,为第一目标指令设置断点;
运行代码段中第一目标指令的上一条指令后停止运行,包括:当运行第一目标指令的上一条指令后,基于断点停止运行。
在另一种可能实现的方式中,当运行第一目标指令的上一条指令后,基于断点停止运行,包括:
继续运行代码段,直至运行第一目标指令的上一条指令后,基于断点停止运行;或者,
接收第一终端通过通信连接发送的第二运行请求,基于第二运行请求,从代码段的第一条指令开始,重新运行代码段,直至运行第一目标指令的上一条指令后,基于断点停止运行。
在另一种可能实现的方式中,方法还包括:
通过通信连接,接收第一终端发送的断点取消请求,断点取消请求携带第一目标指令的地址信息;
取消为地址信息对应的第一目标指令设置的断点。
在另一种可能实现的方式中,方法还包括:
获取代码段的运行状态信息;
通过通信连接,向第一终端发送运行状态信息。
在另一种可能实现的方式中,运行状态信息包括第二终端当前显示的程序界面、代码段的运行统计数据或第二终端当前运行指令的地址信息中的至少一项。
图5是根据一示例性实施例示出的一种代码段运行方法的流程图,应用于图2所示实施例的第一终端和第二终端中,如图5所示,包括以下步骤:
在步骤501中,第一终端与第二终端建立通信连接。
在开发应用程序完成后,需要对应用程序进行测试,发现应用程序中的错误、衡量应用程序的质量,评估应用程序是否能够满足要求。其中,应用程序是指为完成一项或多项特定工作的计算机程序,应用程序包括至少一个代码段,每个代码段包括至少一条指令,对应用程序的测试的过程即为在测试模式下运行应用程序的至少一个代码段的过程。
本公开实施例对在第二终端运行代码段的过程中,在第一终端上对该代码段中的指令进行修改的过程进行说明。其中,该代码段可以为待测试的应用程序,或者可以仅包括应用程序中的一个或多个代码段。为了便于技术人员的操作,在第一终端与第二终端之间建立通信连接,在第二终端运行代码段的过程中,技术人员可以通过第一终端对代码段中的指令进行修改,并在第二终端上运行修改后的指令。
其中,第一终端和第二终端可以为任一终端,如手机、计算机、平板电脑或其他类型的终端等。第一终端与第二终端之间的通信连接可以为网络连接,该网络可以为广域网或局域网。该通信连接还可以是USB(Universal Serial Bus,通用串行总线)连接或其他连接。第一终端和第二终端可以通过两者之间的通信连接进行指令传输和数据交换。通信连接的类型可以是短连接、长连接或其他连接。
在步骤502中,在第二终端运行代码段的过程中,第一终端显示该代码段中的至少一条指令。
第一终端先获取该代码段,在第二终端运行该代码段的过程中,第一终端显示该代码段中的至少一条指令。
关于第一终端获取该代码段的方式,在一种可能实现的方式中,在第一终端与第二终端建立通信连接的情况下,当第二终端接收到开始运行代码段的请求时,通过该通信连接,向第一终端发送该代码段,由第一终端接收该代码段。
在另一种可能实现方式中,在第二终端运行代码段的过程中,当与第一终端建立通信连接时,通过该通信连接,向第一终端发送该代码段,由第一终端接收该代码段。
在另一种可能实现方式中,第一终端和第二终端均存储有一个或多个代码段,且每个代码段具有唯一对应的代码段标识,该代码段标识可以为代码段的序号、代码段中第一条指令的地址信息、代码段代表的函数名称或者代码段所属应用程序的标识等。每条指令的地址信息用于描述指令在代码段中的位置,可以为指令所在代码段的代码段标识和指令在该代码段中的行号组成的字符、指令在代码段所属应用程序中的行号等。
当第二终端接收到开始运行代码段的请求时,通过该通信连接,向第一终端发送该代码段的代码段标识,由第一终端接收该代码段标识,获取该代码段标识对应的代码段。或者,在第二终端运行代码段的过程中,当与第一终端建立通信连接时,通过该通信连接,向第一终端发送该代码段的代码段标识,由第一终端接收该代码段标识,获取该代码段标识对应的代码段。
获取到代码段之后,第一终端在操作界面中,显示该代码段中的至少一条指令,供技术人员查看。在操作界面中,还可以显示至少一个操作按钮,技术人员通过触发任一个操作按钮,可以对该代码段执行相应的操作。另外,操作界面为可编辑界面,技术人员还可以在操作界面中对任一条指令进行编辑操作,如删除指令的操作、修改指令的操作、添加指令的操作等。
第一种可能实现方式中,在第二终端运行代码段的过程中,第一终端可以静态显示该代码段中的至少一条指令,即显示的指令不会随着第二终端运行进度的变化而自动变化。
在此过程中,技术人员可以对第一终端显示的代码段进行编辑操作,或者通过上下滑动操作界面,控制第一终端切换显示的指令。
第二种可能实现方式中,在第二终端运行代码段的过程中,第一终端可以动态显示该代码段中的至少一条指令,即显示的指令会随着第二终端运行进度的变化而自动变化。
在第二终端运行代码段的过程中,确定当前运行指令的地址信息,通过该通信连接向第一终端发送该地址信息,第一终端通过该通信连接接收该地址信息,根据该地址信息确定第二终端当前运行的指令。
此时,第一终端可以采用以下显示方式中的至少一种:
1、突出显示第二终端当前运行的指令,从而将当前运行的指令与其他指令区分开。该突出显示包括:加粗显示、高亮显示、采用预设的明亮颜色显示等。
2、可以默认在操作界面的指定位置显示第二终端当前运行的指令。
则随着第二终端当前运行的指令发生变化,第一终端会滚动显示代码段中的指令,使当前运行的指令固定显示于指定位置。其中,该指定位置为操作界面的顶部、中间位置或其他位置。
例如,指定位置为操作界面的顶部,则随着第二终端当前运行的指令发生变化,第一终端将当前运行的指令固定显示于操作界面的顶部,而不再显示第二终端已运行的指令。后续若技术人员需要查看第二终端已运行的指令,可以在操作界面中触发下滑操作,控制第一终端向下滑动操作界面,从而显示第二终端已运行的指令。
需要说明的是,在第二终端运行代码段的过程中,可以获取该代码段的运行状态信息,通过与第一终端之间的通信连接,向第一终端发送该运行状态信息,第一终端通过通信连接接收到运行状态信息时,显示该运行状态信息。其中,该运行状态信息用于表示代码段的运行状态,技术人员在第一终端上可以查看该运行状态信息,获知代码段的运行状态,了解代码段的运行进度。
在一种可能实现方式中,第二终端运行代码段的过程中,可以实时向第一终端发送该运行状态信息,由第一终端实时更新运行状态信息,以便技术人员实时查看运行状态信息。或者,第二终端还可以周期性地向第一终端发送运行状态信息,第一终端每次接收到运行状态信息时,根据当前接收到的运行状态信息对当前显示的运行状态信息进行更新,以便技术人员查看更新后的运行状态信息。
通过更新第一终端的运行状态信息,可以使技术人员获取到能反映当前运行状态的运行状态信息,有利于技术人员根据该运行状态及时做出决策,如执行重新运行代码段的操作、执行修改代码段中至少一条指令的操作等。
在另一种可能实现方式中,该运行状态信息包括第二终端当前显示的程序界面、代码段的运行统计数据或第二终端当前运行指令的地址信息中的至少一项。
其中,第二终端运行代码段的过程中,会显示程序界面,模拟用户在该程序界面中可能执行的操作,并对该操作进行响应,显示响应后的程序界面,继续模拟用户在响应后的程序界面中可能执行的操作,以此类推,模拟了代码段运行时的效果,实现了对代码段的测试。因此,第二终端当前显示的程序界面可以表示代码段的运行状态,在运行代码段的过程中,第二终端可以通过通信连接,向第一终端发送当前显示的程序界面,由第一终端显示该程序界面,供技术人员查看,从而确定该程序界面是否显示成功、是否存在显示错误、显示的内容是否满足要求等。
例如,第二终端运行代码段的过程中,每间隔1秒对第二终端当前显示的程序界面执行截图操作,得到当前显示的程序界面截图,通过通信连接向第一终端发送该程序界面截图。第一终端第一次接收到第二终端发送的程序界面截图时,显示该程序界面截图,当再次接收到第二终端发送的程序界面截图时,以当前接收到的程序界面截图替换当前显示的程序界面截图,从而显示当前接收到的程序界面截图。
其中,代码段的运行统计数据可以包括代码段的指令运行率、运行时间、出现的错误数量等,随着第二终端的运行进度发生变化。第二终端可以将更新后的运行统计数据发送给第一终端,由第一终端显示更新后的运行统计数据。
关于代码段与运行状态信息的显示方式,在一种可能实现方式中,第一终端可以显示不同的界面,在第一界面中显示代码段,在第二界面中显示运行状态信息,技术人员可以在第一终端上触发切换界面的操作,查看代码段中的指令或者运行状态信息。
在另一种可能实现方式中,第一终端显示一个界面,该界面包括第一区域和第二区域,第一区域用于显示第二终端运行的代码段,第二区域用于显示第二终端发送的运行状态信息,技术人员可以在同一个界面中查看代码段中的指令或者运行状态信息。
且若第一终端动态显示代码段中的指令,第一区域中突出显示的指令与第二区域中的运行状态信息相互对应,如显示与该指令对应的程序界面截图、该指令的地址信息和第二终端运行该指令时统计到的数据。
在步骤503中,当第一终端检测到对至少一条指令中第一目标指令的断点设置操作时,通过通信连接,向第二终端发送断点设置请求。
在步骤504中,第二终端通过该通信连接,接收到第一终端发送的断点设置请求时,根据地址信息,为第一目标指令设置断点。
第二终端运行代码段的过程中,技术人员可以查看运行状态,当技术人员需要对第一目标指令进行修改时,需要控制第二终端在运行第一目标指令的上一条指令后停止运行,在第一终端上对第一目标指令进行修改。
为此,技术人员在第一终端上触发对第一目标指令的断点设置操作,当第一终端检测到该断点设置操作时,获取第一目标指令的地址信息,通过与第二终端之间的通信连接,向第二终端发送断点设置请求,该断点设置请求携带该地址信息,用于指示在该地址信息所在的位置设置断点,即为该第一目标指令设置断点。第二终端通过该通信连接接收到第一终端发送的断点设置请求时,根据地址信息,为第一目标指令设置断点,以便第二终端运行第一目标指令的上一条指令后,也即是运行至断点所在的位置时,停止运行。
其中,断点设置操作可以为选中第一目标指令后点击操作界面中的断点设置按钮的操作,或者还可以为对第一目标指令的双击操作、长按操作等。
另外,为了提示断点所在的位置,第一终端还可以在第一目标指令所在的位置添加提示标记,该提示标记可以为光标、高亮显示标记或其他标记。
在一种可能实现方式中,该第一目标指令可以包括一条指令或多条指令,相应地,第一终端发送给第二终端的断点设置请求中可以携带一条指令的地址信息或多条指令的地址信息。第二终端接收到断点设置请求时,根据断点设置请求携带的地址信息,为该地址信息对应的指令设置断点。
例如,技术人员在第一终端显示的代码段中选中多条连续的指令,并触发点击断点设置按钮的操作,则第一终端检测到技术人员的操作时,通过与第二终端进行交互,为第二终端上的该多条连续的指令设置断点。
在步骤505中,当第二终端运行第一目标指令的上一条指令后,基于该断点停止运行。
第二终端在运行代码段的过程中,逐条运行代码段中的指令,直至代码段运行完成时停止运行,或者直至运行至断点时停止运行,或者直至运行至出现错误时停止运行。
在为第一目标指令设置断点时,第二终端的运行进度可以包括以下两种情况:
第一种情况:为第一目标指令设置断点时,第二终端还未运行第一目标指令,即第二终端当前运行的指令在第一目标指令之前。
此时第二终端继续运行代码段,直至运行第一目标指令的上一条指令后,基于为第一目标指令设置的断点停止运行。
第二种情况:为第一目标指令设置断点时,第二终端已运行过第一目标指令,即第二终端当前运行的指令在第一目标指令之后。
此时若第二终端继续运行代码段,将会运行至代码段的最后一条指令,而不会运行至第一目标指令。
为了使第二终端运行至断点所在的位置时停止运行,技术人员可以在第一终端上触发重新运行操作。当第一终端检测到该重新运行操作时,通过通信连接,向第二终端发送第二运行请求,该第二运行请求用于指示第二终端从代码段的第一条指令开始重新运行代码段。则第二终端通过通信连接接收该第二运行请求,基于该第二运行请求,从代码段的第一条指令开始,重新运行代码段,直至运行第一目标指令的上一条指令后,基于为第一目标指令设置的断点停止运行。
在步骤506中,第一终端获取用于替代第一目标指令的第二目标指令。
当第二终端基于为第一目标指令设置的断点停止运行时,技术人员在第一终端上查看断点的提示标记或运行状态信息,从而获知当前第二终端运行至第一目标指令时停止运行。此时,技术人员在第一终端上输入用于替代第一目标指令的第二目标指令,第一终端获取第二目标指令。
需要说明的是,无论第一目标指令包括一条指令还是多条指令,该第二目标指令均可包括一条指令或多条指令,且第二目标指令中的指令数量与第一目标指令中的指令数据可以相等,也可以不等。
在一种可能实现的方式中,技术人员通过触发删除操作,将第一目标指令删除,通过触发输入操作将该第二目标指令输入至第一终端,由第一终端获取该第二目标指令,显示该第二目标指令。
在另一种可能实现的方式中,第二终端停止运行时,获取停止运行时到达的地址信息,即第一目标指令的地址信息,通过该通信连接向第一终端发送此时的运行状态信息,该运行状态信息携带该地址信息,且用于表示第二终端已停止运行。第一终端通过该通信连接接收第二终端发送的运行状态信息,根据运行状态信息确定第二终端在第一目标指令处停止运行,则显示输入窗口,供技术人员输入用于替代第一目标指令的第二目标指令,第一终端获取输入窗口中的第二目标指令。且该输入窗口中还可以显示第一目标指令,以便技术人员获知当前停止运行的是哪一条指令。
在步骤507中,第一终端通过通信连接,向第二终端发送第一运行请求。
为了使第二终端运行第二目标指令,第一终端通过与第二终端之间的通信连接,向第二终端发送第一运行请求。该第一运行请求携带第二目标指令,第一运行请求用于指示第二终端以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
在步骤508中,第二终端通过通信连接,接收第一终端发送的第一运行请求,以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
第二终端接收到第一终端发送的第一运行请求时,获取该第一运行请求携带的第二目标指令,以该第二目标指令作为第一目标指令的替代指令,继续运行该代码段。其中,以该第二目标指令作为第一目标指令的替代指令是指,第二终端之前运行第一目标指令的上一条指令后,不再运行第一目标指令,而是运行第二目标指令,在运行完第二目标指令之后,继续运行第一目标指令的下一条指令。
其中,当第二目标指令包括多条指令时,第二终端可以依次运行该多条指令,直至第二目标指令中的最后一条指令运行完成时,继续运行第一目标指令的下一条指令。
若运行该第二目标指令的过程中出现错误,则针对该出现的错误执行响应操作。该响应操作可以为基于该错误停止运行或者跳过该第二目标指令而继续运行第一目标指令的下一条指令等,且停止运行后,第二终端可以生成提示信息,该提示信息用于提示第二终端在运行第二目标指令的过程中出现错误,后续第二终端可以通过通信连接将该提示信息发送给第一终端,由第一终端显示该提示信息,由技术人员根据该提示信息获知第二目标指令出现错误,后续可以根据该错误对第二目标指令继续进行修改。
需要说明的是,在上述步骤504中为第一目标指令设置断点之后,或者在上述步骤508基于断点停止运行后又继续运行代码段之后,还可以取消为第一目标指令设置的断点。
在一种可能实现的方式中,技术人员在第一终端对第一目标指令触发断点取消操作,该断点取消操作用于指示第一终端取消为第一目标指令设置的断点。当第一终端检测到对第一目标指令的断点取消操作时,通过与第二终端之间的通信连接,向第二终端发送断点取消请求,该断点取消请求携带第一目标指令的地址信息,用于指示第二终端取消为地址信息对应的第一目标指令设置的断点。第二终端通过通信连接,接收第一终端发送的断点取消请求,根据该断点取消请求中携带的地址信息,取消为地址信息对应的第一目标指令设置的断点。
在取消为第一目标指令设置的断点以后,若第二终端运行第一目标指令的上一条指令后,不会停止运行,而是继续运行第一目标指令。
需要说明的第一点是,第二终端将第二目标指令作为第一目标指令的替代指令,继续运行代码段,可以得到修改后的代码段的运行结果,供技术人员查看,在此过程中未对代码段进行修改,第二终端仍可以保留原来的代码段。或者,第二终端在保留原来的代码段的情况下,根据第二目标指令和原来的代码段,采用第二目标指令替换第一目标指令,生成新的代码段。
应用程序可以为rpk安装文件的形式,即第二终端获取到应用程序后,对应用程序进行编译得到rpk安装文件。运行应用程序的某一代码段,通过修改指令生成新的代码段后,得到修改后的应用程序,对修改后的应用程序进行编译,可以得到修改后的rpk安装文件。
需要说明的第二点是,在第二终端运行应用程序的过程中,可以将应用程序看做一个代码段,采用本公开实施例提供的方法运行该代码段。或者,应用程序中包括多个代码段,第二终端会依次运行多个代码段,每次运行至某一代码段的第一条指令时,通过该通信连接,将当前运行的代码段发送给第一终端,由第一终端显示。
需要说明的第三点是,上述第一终端可以安装Unix操作系统(一种多用户、多任务的操作系统)或其他操作系统,以第一终端安装Unix操作系统为例,对第一终端和第二终端建立通信连接以及两者通过该通信连接进行交互的过程进行说明,参见图6,过程包括:
1、第二终端启动运行环境,建立后台守护进程,并创建一个名称为“hybrid-debugger”的套接字。
2、通过第一终端上的http(hyper text transport protocol,超文本传输协议)服务,调用adb(android debug bridge,安卓调试桥)工具中的“adb start-server”命令,启动第一终端的后台应用程序,该后台应用程序用于管理第一终端上各个应用程序。
3、通过第一终端上的http服务调用adb工具中的“adb devices”命令,检测是否有其他终端连入第一终端。
4、第二终端通过USB连接线与第一终端建立连接。
5、第一终端检测到第二终端连入第一终端后,通过与第二终端之间的连接,调用adb工具中的“adb query‘hybrid-debugger’”命令,查询第二终端创建的套接字的名称。
6、第二终端通过后台守护进程向第一终端发送套接字的名称“hybrid-debugger”。
7、第一终端根据接收到的套接字的名称,创建http服务与第二终端的调试程序之间的第一长连接。
8、第二终端显示调试程序的程序界面,技术人员通过点击调试程序中的“startdebug”按钮,触发调试程序运行该代码段,调试程序运行代码段后,第二终端建立名称为“hybrid processname devtools remote”的套接字,并将该套接字的名称发送给调试程序,由调试程序通过第一长连接发送给第一终端。
其中,调试程序为安装在第二终端上的应用程序,启动调试程序后,可以在调试程序中加载代码段,运行加载的代码段。
9、第一终端根据调试程序发送的套接字的名称,访问http服务,开启浏览器,该浏览器向http服务发送连接请求,该连接请求携带第二终端创建的套接字的名称以及第二终端的设备标识,用于发起与第二终端之间建立第二长连接,设备标识用于确定唯一的终端。
10、第二终端接收到连接请求时,与第一终端的浏览器建立第二长连接,并通过该第二长连接将运行代码段的过程中获取到的运行状态信息发送给第一终端。
11、第一终端根据接收到的运行状态信息,向第二终端发送携带修改后的指令的运行请求,该运行请求用于指示第二终端运行该修改后的指令。
12、第二终端接收到运行请求后,运行该修改后的指令,获取运行状态信息,并将该运行状态信息发送给第一终端。
本公开实施例提供的方法,第一终端与第二终端建立通信连接,在第二终端运行代码段的过程中,第一终端显示该代码段中的至少一条指令,当检测到对至少一条指令中第一目标指令的断点设置操作时,通过通信连接向第二终端发送携带地址信息的断点设置请求,第二终端接收到该断点设置请求时,根据地址信息,为第一目标指令设置断点,当运行第一目标指令的上一条指令后,基于该断点停止运行,第一终端获取用于替代第一目标指令的第二目标指令,通过通信连接向第二终端发送携带该第二目标指令的第一运行请求,第二终端接收该第一运行请求,以第二目标指令作为第一目标指令的替代指令,继续运行代码段。本公开实施例中,通过第一终端与第二终端之间建立的通信连接进行交互,能够在第二终端运行代码段的过程中对代码段进行修改,操作便捷,并且能够以指令为单位进行修改,只需将修改后的指令发送给第二终端,无需发送修改后的整个代码段,降低了耗费的传输资源,缩短了传输时间。
通过在代码段中设置断点,可以在运行代码段的过程中,根据该断点停止运行代码段中的指令,便于对代码段终中的指令进行管理。
并且,第一终端可以显示第二终端运行代码段的运行状态信息,使技术人员在对代码段进行测试的过程中确定运行状态,能够根据运行状态信息及时做出正确的决策,实现对代码段的进一步修改,缩短了代码段的测试时间,提高了测试效率。
并且,本公开实施例中,第二终端与第一终端可以通过USB连接线进行通信连接,无需第一终端与第二终端连接互联网,也无需第一终端与第二终端在同一局域网中,即使在没有网络连接的情况下也可以运行代码段,得到运行结果,操作简单易行。
图7是根据一示例性实施例示出的一种代码段运行装置的结构示意图,应用于如图2所示的第一终端中,如图7所示,该装置包括连接模块701、获取模块702和第一发送模块703。
连接模块701,用于建立与第二终端之间的通信连接;
获取模块702,用于当确定第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代第一目标指令的第二目标指令;
第一发送模块703,用于通过通信连接,向第二终端发送第一运行请求,第一运行请求携带第二目标指令,第一运行请求用于指示第二终端以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
在一种可能实现的方式中,装置还包括:
第一显示模块,用于显示代码段中的至少一条指令;
第二发送模块,用于当检测到对第一目标指令的断点设置操作时,通过通信连接,向第二终端发送断点设置请求,断点设置请求携带第一目标指令的地址信息,用于指示第二终端为地址信息对应的第一目标指令设置断点,使第二终端运行第一目标指令的上一条指令后基于断点停止运行。
在另一种可能实现的方式中,装置还包括:
第三发送模块,用于当检测到对第一目标指令的断点取消操作时,通过通信连接,向第二终端发送断点取消请求,断点取消请求携带第一目标指令的地址信息,用于指示第二终端取消为地址信息对应的第一目标指令设置的断点。
在另一种可能实现的方式中,装置还包括:
第四发送模块,用于当检测到重新运行操作时,通过通信连接,向第二终端发送第二运行请求,第二运行请求用于指示第二终端从代码段的第一条指令开始,重新运行代码段。
在另一种可能实现的方式中,装置还包括:
第二显示模块,用于当通过通信连接接收到第二终端发送的运行状态信息时,显示运行状态信息。
在另一种可能实现的方式中,运行状态信息包括第二终端当前显示的程序界面、代码段的运行统计数据或第二终端当前运行指令的地址信息中的至少一项。
图8是根据一示例性实施例示出的一种代码段运行装置的结构示意图,应用于如图2所示的第二终端中,如图8所示,该装置包括连接模块801、运行模块802和第一接收模块803。
连接模块801,用于建立与第一终端之间的通信连接;
运行模块802,用于运行代码段中第一目标指令的上一条指令后停止运行;
第一接收模块803,用于通过通信连接,接收第一终端发送的第一运行请求,第一运行请求携带用于替代第一目标指令的第二目标指令;
运行模块802,还用于以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
在一种可能实现的方式中,装置还包括:
第二接收模块,用于在运行代码段的过程中,通过通信连接,接收第一终端发送的断点设置请求,断点设置请求携带第一目标指令的地址信息,根据地址信息,为第一目标指令设置断点;
运行模块,还用于当运行第一目标指令的上一条指令后,基于断点停止运行。
在另一种可能实现的方式中,运行模块802还用于继续运行代码段,直至运行第一目标指令的上一条指令后,基于断点停止运行;或者,接收第一终端通过通信连接发送的第二运行请求,基于第二运行请求,从代码段的第一条指令开始,重新运行代码段,直至运行第一目标指令的上一条指令后,基于断点停止运行。
在另一种可能实现的方式中,装置还包括:
第三接收模块,用于通过通信连接,接收第一终端发送的断点取消请求,断点取消请求携带第一目标指令的地址信息;
取消模块,用于取消为地址信息对应的第一目标指令设置的断点。
在另一种可能实现的方式中,装置还包括:
获取模块,用于获取代码段的运行状态信息;
发送模块,用于通过通信连接,向第一终端发送运行状态信息。
在另一种可能实现的方式中,运行状态信息包括第二终端当前显示的程序界面、代码段的运行统计数据或第二终端当前运行指令的地址信息中的至少一项。
图9是根据一示例性实施例示出的一种终端900的框图。例如,终端900可以是移动电话,计算机,数字广播装置,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,终端900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(I/O)的接口912,传感器组件914,以及通信组件916。
处理组件902通常控制终端900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在终端900的操作。这些数据的示例包括用于在终端900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为终端900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为终端900生成、管理和分配电力相关联的组件。
多媒体组件908包括在所述终端900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当终端900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当终端900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为终端900提供各个方面的状态评估。例如,传感器组件914可以检测到终端900的打开/关闭状态,组件的相对定位,例如所述组件为终端900的显示器和小键盘,传感器组件914还可以检测终端900或终端900一个组件的位置改变,用户与终端900接触的存在或不存在,终端900方位或加速/减速和终端900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于终端900和其他设备之间有线或无线方式的通信。终端900可以接入基于通信标准的无线网络,如Wi-Fi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件916还包括近场通信(NFC)模块,以促进短程通信。
在示例性实施例中,终端900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述代码段运行方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由终端900的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由第一终端的处理器执行时,使得第一终端能够执行上述实施例中的方法,方法包括:
建立与第二终端之间的通信连接;
当确定第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代第一目标指令的第二目标指令;
通过通信连接,向第二终端发送第一运行请求,第一运行请求携带第二目标指令,第一运行请求用于指示第二终端以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由第二终端的处理器运行时,使得第二终端能够运行上述实施例中的方法,方法包括:
建立与第一终端之间的通信连接;
运行代码段中第一目标指令的上一条指令后停止运行;
通过通信连接,接收第一终端发送的第一运行请求,第一运行请求携带用于替代第一目标指令的第二目标指令;
以第二目标指令作为第一目标指令的替代指令,继续运行代码段。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种获取机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开实施例的一些可选实施例,并不用以限制本公开,凡在本公开实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开实施例的保护范围之内。
Claims (24)
1.一种代码段运行方法,其特征在于,应用于第一终端,所述方法包括:
建立与第二终端之间的通信连接;
显示代码段中的至少一条指令,其中,当前运行的指令与其他指令区分显示;
当检测到对第一目标指令的断点设置操作时,通过所述通信连接,向所述第二终端发送断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,用于指示所述第二终端为所述地址信息对应的所述第一目标指令设置断点,使所述第二终端运行所述第一目标指令的上一条指令后基于所述断点停止运行;
当确定所述第二终端运行所述代码段中所述第一目标指令的上一条指令后停止运行时,获取用于替代所述第一目标指令的第二目标指令;
通过所述通信连接,向所述第二终端发送第一运行请求,所述第一运行请求携带所述第二目标指令,所述第一运行请求用于指示所述第二终端以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到对所述第一目标指令的断点取消操作时,通过所述通信连接,向所述第二终端发送断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息,用于指示所述第二终端取消为所述地址信息对应的所述第一目标指令设置的断点。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到重新运行操作时,通过所述通信连接,向所述第二终端发送第二运行请求,所述第二运行请求用于指示所述第二终端从所述代码段的第一条指令开始,重新运行所述代码段。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
当通过所述通信连接接收到所述第二终端发送的运行状态信息时,显示所述运行状态信息。
5.根据权利要求4所述的方法,其特征在于,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
6.一种代码段运行方法,其特征在于,应用于第二终端,所述方法包括:
建立与第一终端之间的通信连接;
运行代码段中第一目标指令的上一条指令后停止运行;
通过所述通信连接,接收所述第一终端发送的第一运行请求,所述第一运行请求携带用于替代所述第一目标指令的第二目标指令;
以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段;
所述方法还包括:
在运行所述代码段的过程中,通过所述通信连接,接收所述第一终端发送的断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,根据所述地址信息,为所述第一目标指令设置断点,所述第一终端显示所述代码段中的至少一条指令,其中,当前运行的指令与其他指令区分显示,所述断点设置请求由所述第一终端检测到对所述第一目标指令的断点设置操作时发送;
所述运行代码段中第一目标指令的上一条指令后停止运行,包括:当运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
7.根据权利要求6所述的方法,其特征在于,所述当运行所述第一目标指令的上一条指令后,基于所述断点停止运行,包括:
继续运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行;或者,
接收所述第一终端通过所述通信连接发送的第二运行请求,基于所述第二运行请求,从所述代码段的第一条指令开始,重新运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述通信连接,接收所述第一终端发送的断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息;
取消为所述地址信息对应的所述第一目标指令设置的断点。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述方法还包括:
获取所述代码段的运行状态信息;
通过所述通信连接,向所述第一终端发送所述运行状态信息。
10.根据权利要求9所述的方法,其特征在于,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
11.一种代码段运行装置,其特征在于,所述装置包括:
连接模块,用于建立与第二终端之间的通信连接;
获取模块,用于当确定所述第二终端运行代码段中第一目标指令的上一条指令后停止运行时,获取用于替代所述第一目标指令的第二目标指令;
第一发送模块,用于通过所述通信连接,向所述第二终端发送第一运行请求,所述第一运行请求携带所述第二目标指令,所述第一运行请求用于指示所述第二终端以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段;
所述装置还包括:
第一显示模块,用于显示所述代码段中的至少一条指令,其中,当前运行的指令与其他指令区分显示;
第二发送模块,用于当检测到对所述第一目标指令的断点设置操作时,通过所述通信连接,向所述第二终端发送断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,用于指示所述第二终端为所述地址信息对应的所述第一目标指令设置断点,使所述第二终端运行所述第一目标指令的上一条指令后基于所述断点停止运行。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于当检测到对所述第一目标指令的断点取消操作时,通过所述通信连接,向所述第二终端发送断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息,用于指示所述第二终端取消为所述地址信息对应的所述第一目标指令设置的断点。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第四发送模块,用于当检测到重新运行操作时,通过所述通信连接,向所述第二终端发送第二运行请求,所述第二运行请求用于指示所述第二终端从所述代码段的第一条指令开始,重新运行所述代码段。
14.根据权利要求11-13任一项所述的装置,其特征在于,所述装置还包括:
第二显示模块,用于当通过所述通信连接接收到所述第二终端发送的运行状态信息时,显示所述运行状态信息。
15.根据权利要求14所述的装置,其特征在于,所述运行状态信息包括所述第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
16.一种代码段运行装置,其特征在于,所述装置包括:
连接模块,用于建立与第一终端之间的通信连接;
运行模块,用于运行代码段中第一目标指令的上一条指令后停止运行;
第一接收模块,用于通过所述通信连接,接收所述第一终端发送的第一运行请求,所述第一运行请求携带用于替代所述第一目标指令的第二目标指令;
所述运行模块,还用于以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段;
所述装置还包括:
第二接收模块,用于在运行所述代码段的过程中,通过所述通信连接,接收所述第一终端发送的断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,根据所述地址信息,为所述第一目标指令设置断点,所述第一终端显示所述代码段中的至少一条指令,其中,当前运行的指令与其他指令区分显示,所述断点设置请求由所述第一终端检测到对所述第一目标指令的断点设置操作时发送;
所述运行模块,还用于当运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
17.根据权利要求16所述的装置,其特征在于,所述运行模块还用于继续运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行;或者,接收所述第一终端通过所述通信连接发送的第二运行请求,基于所述第二运行请求,从所述代码段的第一条指令开始,重新运行所述代码段,直至运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
18.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于通过所述通信连接,接收所述第一终端发送的断点取消请求,所述断点取消请求携带所述第一目标指令的地址信息;
取消模块,用于取消为所述地址信息对应的所述第一目标指令设置的断点。
19.根据权利要求16-18任一项所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取所述代码段的运行状态信息;
发送模块,用于通过所述通信连接,向所述第一终端发送所述运行状态信息。
20.根据权利要求19所述的装置,其特征在于,所述运行状态信息包括第二终端当前显示的程序界面、所述代码段的运行统计数据或所述第二终端当前运行指令的地址信息中的至少一项。
21.一种第一终端,其特征在于,所述第一终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
建立与第二终端之间的通信连接;
显示代码段中的至少一条指令,其中,当前运行的指令与其他指令区分显示;
当检测到对第一目标指令的断点设置操作时,通过所述通信连接,向所述第二终端发送断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,用于指示所述第二终端为所述地址信息对应的所述第一目标指令设置断点,使所述第二终端运行所述第一目标指令的上一条指令后基于所述断点停止运行;
当确定所述第二终端运行所述代码段中所述第一目标指令的上一条指令后停止运行时,获取用于替代所述第一目标指令的第二目标指令;
通过所述通信连接,向所述第二终端发送第一运行请求,所述第一运行请求携带所述第二目标指令,所述第一运行请求用于指示所述第二终端以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段。
22.一种第二终端,其特征在于,所述第二终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
建立与第一终端之间的通信连接;
运行代码段中第一目标指令的上一条指令后停止运行;
通过所述通信连接,接收所述第一终端发送的第一运行请求,所述第一运行请求携带用于替代所述第一目标指令的第二目标指令;
以所述第二目标指令作为所述第一目标指令的替代指令,继续运行所述代码段;
在运行所述代码段的过程中,通过所述通信连接,接收所述第一终端发送的断点设置请求,所述断点设置请求携带所述第一目标指令的地址信息,根据所述地址信息,为所述第一目标指令设置断点,所述第一终端显示所述代码段中的至少一条指令,其中,当前运行的指令与其他指令区分显示,所述断点设置请求由所述第一终端检测到对所述第一目标指令的断点设置操作时发送;
当运行所述第一目标指令的上一条指令后,基于所述断点停止运行。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至5任一权利要求所述的代码段运行方法中所运行的操作。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求6至10任一权利要求所述的代码段运行方法中所运行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637019.1A CN109739763B (zh) | 2018-12-29 | 2018-12-29 | 代码段运行方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811637019.1A CN109739763B (zh) | 2018-12-29 | 2018-12-29 | 代码段运行方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739763A CN109739763A (zh) | 2019-05-10 |
CN109739763B true CN109739763B (zh) | 2022-03-11 |
Family
ID=66362418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811637019.1A Active CN109739763B (zh) | 2018-12-29 | 2018-12-29 | 代码段运行方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739763B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142856A (zh) * | 2013-05-07 | 2014-11-12 | 华为技术有限公司 | 服务程序调用方法、系统及其智能设备 |
CN105847325A (zh) * | 2016-03-14 | 2016-08-10 | 广州酷狗计算机科技有限公司 | 应用客户端的调试方法及装置 |
CN107656870A (zh) * | 2017-09-27 | 2018-02-02 | 四川久远银海软件股份有限公司 | 应用调试方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516441B2 (en) * | 2001-06-04 | 2009-04-07 | Microsoft Corporation | Method and system for program editing and debugging in a common language runtime environment |
-
2018
- 2018-12-29 CN CN201811637019.1A patent/CN109739763B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142856A (zh) * | 2013-05-07 | 2014-11-12 | 华为技术有限公司 | 服务程序调用方法、系统及其智能设备 |
CN105847325A (zh) * | 2016-03-14 | 2016-08-10 | 广州酷狗计算机科技有限公司 | 应用客户端的调试方法及装置 |
CN107656870A (zh) * | 2017-09-27 | 2018-02-02 | 四川久远银海软件股份有限公司 | 应用调试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109739763A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221733B (zh) | 信息处理方法、装置、移动终端及存储介质 | |
CN109901886B (zh) | 页面语言切换方法、系统、装置和计算机可读存储介质 | |
CN104539476A (zh) | 数据包获取方法和装置 | |
CN110781080B (zh) | 程序调试方法及装置、存储介质 | |
CN112256563B (zh) | 安卓应用稳定性测试方法、装置、电子设备及存储介质 | |
CN109344051B (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
CN116933707B (zh) | 设计电路的测试方法、装置、设备及介质 | |
CN107562500B (zh) | 调试装置、方法及设备 | |
CN109684112B (zh) | 程序文件运行方法、装置、终端及存储介质 | |
CN109976872B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110795354A (zh) | 信息处理方法、装置及存储介质 | |
CN116069612A (zh) | 一种异常定位方法、装置和电子设备 | |
CN111596980B (zh) | 一种信息处理方法及装置 | |
CN113377664A (zh) | 模型测试方法及装置、电子设备和存储介质 | |
CN117271374A (zh) | 芯片的仿真测试方法、装置、设备及存储介质 | |
CN115408277B (zh) | 一种接口测试方法及装置 | |
CN109739763B (zh) | 代码段运行方法、装置、终端及存储介质 | |
CN111338961A (zh) | 应用调试方法及装置、电子设备及存储介质 | |
CN109726129B (zh) | 代码段运行方法、装置、终端及存储介质 | |
CN115604132A (zh) | 服务器的远程控制方法、装置、电子设备和可读存储介质 | |
CN112383661B (zh) | 移动端自动化测试方法、装置、电子设备及存储介质 | |
CN114780334A (zh) | 功耗监测方法、功耗监测装置及存储介质 | |
CN109947640B (zh) | 基于回归测试的核心功能覆盖度统计方法及装置 | |
CN107391356B (zh) | 卡顿信息获取方法、装置及计算机可读存储介质 | |
CN106533841A (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 |