一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

程序调试方法、装置、设备以及存储介质与流程

2021-12-03 23:18:00 来源:中国专利 TAG:


1.本技术涉及软件领域,尤其涉及一种程序调试方法、装置、设备以及存储介质。


背景技术:

2.在程序调试过程中,经常需要借助硬件或者通过在原始程序代码中嵌入断点和对应的调试功能代码的方式实现断点的设置以进行程序调试。
3.一方面借助硬件实现程序调试会带来高昂的硬件成本,另一方面通过嵌入断点和调试功能代码的方式实现程序调试,需要对原始程序代码进行重新编译,过程繁琐。因此,如何在节省成本的情况下有效设置断点,提升程序调试效率成为亟需解决的问题。


技术实现要素:

4.本技术实施例提供一种程序调试方法、装置、设备以及存储介质,可在目标程序中灵活设置断点,提升程序调试效率,适用性高。
5.第一方面,本技术实施例提供一种程序调试方法,该方法包括:
6.在运行目标程序的过程中,若运行至上述目标程序中的目标断点,则执行上述目标断点处的目标跳转功能代码以跳转至上述目标断点对应的置换地址:
7.从上述目标断点对应的置换地址获取并执行上述目标断点对应的目标调试功能代码;
8.调试完成后,恢复上述目标断点处的原始代码并继续运行上述目标程序。
9.第二方面,本技术实施例提供了一种程序调试装置,该装置包括:
10.跳转模块,用于在运行目标程序的过程中,若运行至上述目标程序中的目标断点,则执行上述目标断点处的目标跳转功能代码以跳转至上述目标断点对应的置换地址;
11.调试模块,用于从上述目标断点对应的置换地址获取并执行上述目标断点对应的目标调试功能代码;
12.恢复模块,用于调试完成后,恢复上述目标断点处的原始代码并继续运行上述目标程序。
13.第三方面,本技术实施例提供了一种电子设备,包括处理器和存储器,该处理器和存储器相互连接;
14.所述存储器用于存储计算机程序;
15.所述处理器被配置用于在调用所述计算机程序时,执行本技术实施例提供的程序调试方法。
16.第四方面,本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现本技术实施例提供的程序调试方法。
17.第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子
设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例提供的程序调试方法。
18.在本技术实施例中,通过断点设置指令可在目标程序中灵活设置断点,并且通过将断点对应的调试功能代码进行存储,可在目标程序运行至该断点时,直接基于跳转功能代码进行跳转以执行调试功能代码,从而在不依赖硬件参与程序调试的情况下实现对目标程序的有效调试,适用性高。
附图说明
19.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1是本技术实施例提供的程序调试方法的流程示意图;
21.图2是本技术实施例提供的断点设置方法的流程示意图;
22.图3是本技术实施例提供的对断点地址和原始代码进行备份的场景示意图;
23.图4是本技术实施例提供的确定断点以及设置断点的方法流程示意图;
24.图5是本技术实施例提供的基于断点进行程序调试的流程示意图;
25.图6是本技术实施例提供的基于断点进行程序调试的场景示意图;
26.图7是本技术实施例提供的程序调试装置的结构示意图;
27.图8是本技术实施例提供的电子设备的结构示意图。
具体实施方式
28.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.本技术实施例提供的程序调试方法可适用于对嵌入式程序调试,也可适用于对计算机程序调试等,具体可基于实际应用场景需求确定,在此不做限制。
30.参见图1,图1是本技术实施例提供的程序调试方法的流程示意图。如图1所示,本技术实施例提供的程序调试方法可包括如下步骤:
31.步骤s11、在运行目标程序的过程中,若运行至目标程序中的目标断点,则执行目标断点处的目标跳转功能代码以跳转至目标断点对应的置换地址。
32.在一些可行的实施方式中,断点为程序运行过程中的中断位置,在对目标程序进行调试的过程中,可运行目标程序并在目标程序运行至断点时,目标程序停止运行,此时可以在该断点处进行程序调试等操作。
33.其中,上述目标程序中可包括至少一个断点,且目标程序中的各断点在目标程序中的位置各不相同,具体可由断点实际设置需求确定,在此不做限制。
34.其中,上述目标程序中的各断点的设置方法可参见图2,图2是本技术实施例提供的断点设置方法的流程示意图。如图2所示,本技术实施例提供的断点设置方法可包括如下
步骤:
35.步骤s111、获取断点设置指令,在目标程序中确定断点设置指令对应的第一断点。
36.在一些可行的实施方式中,上述断点设置指令可以为在运行目标程序之前的断点设置指令。即在运行目标程序以对目标程序进行调试之前,可接收用户触发的针对目标程序的断点设置指令,进而基于在运行目标程序之前获取到的断点设置指令在目标程序中设置断点。
37.可选地,上述断点设置指令可以为在运行目标程序的过程中获取到的预设指令。其中,上述预设指令包括但不限于中断指令或者轮询指令等,也可以为预先设置的用于进行断点设置的相关指令,或者可以为基于目标程序中的预设地址或者预设符号所触发的相关指令等,具体可基于实际应用场景需求确定,在此不做限制。
38.例如,在运行目标程序的过程中,可动态获取预设指令,进而可在运行目标程序的过程中基于获取到的预设指令在目标程序中动态设置断点。
39.可选地,上述断点指令可以为在运行目标程序的过程中通过预设交互方式获取到的断点设置指令。其中,上述通过预设交互方式获取到的断点设置指令可以为基于预设调试界面获取到的断点设置指令,也可以为基于预设串口接收到的断点设置指令,具体可基于实际应用场景需求确定,在此不做限制。
40.例如,在运行目标程序的过程中,用户可基于程序调试界面对目标程序进行断点设置,基于此可通过程序调试界面获取用户触发的断点设置指令,进而基于在运行目标程序的过程中通过程序调试界面获取到的断点设置指令在目标程序中设置断点。
41.在一些可行的实施方式中,在获取到断点设置指令后,可在目标程序中确定该断点设置指令对应的断点。为方便描述,以下将断点设置指令对应的断点称为第一断点。即在获取到断点设置指令后,可基于断点设置指令,确定在目标程序中的目标位置设置第一断点。其中,上述目标位置为目标程序中的某一行代码处。
42.在一些可行的实施方式中,本技术实施例提供的程序调试方法可适用于进阶精简指令集机器(advanced reduced instruction set computing machine,arm)等处理器,并通过处理器中的寄存器保存目标程序运行过程中的指令计数器(program counter,pc)值,用于指示当前正在运行的程序指令的下一条程序指令的地址。
43.在此情况下,在基于断点设置指令确定第一断点时,需要避开目标程序中的压栈指令,以保证在程序调试过程中目标程序的正常运行。如使用arm体系结构中的lr寄存器保存应用程序对应的pc值时,在确定第一断点时需要避开目标程序中的lr压栈指令来保证目标程序的正常运行。
44.基于此,在获取待断点设置指令后,可先确定目标程序中断点设置指令对应的初始断点,该初始断点为断点设置指令所期望在目标程序中设置的断点。如上述断点设置指令为在运行目标程序的过程中获取到的终端指令,则目标程序中该断点设置指令对应的初始断点为目标程序中断时刻所对应的代码处。如上述断点设置指令为在运行目标程序的过程中通过程序调试界面获取到的用户触发的断点设置指令,则可将用户期望在目标程序中设置的断点,并将其作为该断点设置指令对应的初始断点。
45.进一步地,确定断点设置指令对应的初始断点之后,可确定目标程序中初始断点对应的原始代码是否包括压栈指令。若目标程序中初始断点对应的原始代码包括压栈指
令,则可对初始断点的位置调整至初始代码中不包括压栈指令的位置,并将调整后的断点确定该断点设置指令对应的第一断点。
46.若目标程序中初始断点对应的原始代码不包压栈指令,则可直接将该初始断点确定为断点设置指令对应的第一断点。
47.其中,对于任一断点,该断点对应的原始代码可以为该断点处所对应的代码,也可以为目标程序中与该断点前后相关联的代码,具体可基于实际应用场景需求确定,在此不做限制。
48.步骤s112、确定第一断点对应的第一调试功能代码,并将第一调试功能代码存储至第一断点对应的置换地址。
49.在一些可行的实施方式中,在目标程序中确定断点设置指令对应的第一断点后,可确定第一断点对应的第一调试功能代码。其中,第一断点对应的第一调试功能代码为在目标运行至第一断点并中断后,所进行的调试功能对应的代码。即在目标程序中确定断点设置指令对应的第一断点后,可确定在该断点所执行的调试功能,并确定该调试功能所对应的第一调试功能代码。
50.其中,上述第一调试功能代码对应的调试功能包括但不限于显示当前函数堆栈、打印寄存器信息、显示页面信息或者设置断点等,具体可基于实际应用场景需求确定,在此不做限制。即第一断点对应的第一调试功能代码可以为实现任意功能的调试代码,如在目标程序运行至第一断点并停止运行后,可基于第一功能代码实现显示当前函数堆栈、打印寄存器信息、显示页面信息以及在目标程序中设置断点等功能。
51.进一步地,在确定第一断点对应的第一调试功能代码后,可将第一调试功能代码存储至第一断点对应的置换地址,即将第一调试功能代码存储至第一断点对应的置换地址所对应的存储空间。
52.其中,上述置换地址对应的存储空间可以为物理内存单元或者为逻辑存储空间,如可以为动态随机存取存储器(dynamic random access memory,dram)或者静态随机存取存储器(static random

access memory,sram)的内部存储空间等,具体可基于是应用场景需求确定,在此不做限制。
53.例如,上述置换地址可以为约定的置换地址,其可以为指向dram或者sram的0x2000000地址。
54.其中,目标程序中的不同断点所对应的置换地址可以相同,也可以不同,如可将不同断点对应的调试功能代码集中或者分别存储,具体可基于实际应用场景需求确定,在此不做限制。
55.步骤s113、将目标程序中第一断点对应的原始代码替换为第一跳转功能代码。
56.在将第一断点对应的第一调试功能代码存储至对应的置换地址之后,可将目标程序中第一断点对应的原始代码替换为对应的跳转功能代码。为方便描述,以下将第一断点对应的跳转功能代码称为第一跳转功能代码。其中,第一断点对应的第一跳转功能代码用于跳转至第一断点对应的置换地址,当目标程序运行至第一断点时,可执行第一断点处的第一跳转功能代码以跳转至对应的置换地址,从对应的置换地址获取并执行第一断点所对应的第一调试功能代码,从而完成第一断点所对应的调试功能的运行。
57.在一些可行的实施方式中,在目标程序中确定断点设置指令对应的第一断点之
后,或者在将第一断点对应的原始代码替换为第一跳转功能代码之前,可确定第一断点的断点地址,并将目标程序中第一断点对应的原始代码存储至第一断点对应的备份地址。为方便描述,以下将第一断点的断点地址称为第一断点地址。其中,第一断点地址用于确定第一断点在目标程序中的具体位置,也即用于表示第一断点对应的原始代码在目标程序中的位置。
58.进一步地,在将第一断点对应的原始代码存储至第一断点对应的备份地址后,可将第一断点的第一断点地址同样存储于第一断点对应的备份地址。其中,上述第一断点地址用于在基于第一断点处的第一跳转功能代码跳转至对应的置换地址,获取并执行第一断点对应的调试功能代码之后,基于备份地址中第一断点对应的原始代码将位于第一断点地址处的第一跳转功能代码进行还原。
59.其中,上述备份地址对应的存储空间同样可以为物理内存单元或者为逻辑存储空间,如同样可以为dram或者sram内部存储空间等,具体可基于应用场景需求确定,在此不做限制。
60.其中,目标程序中的不同断点所对应的备份地址可以相同,也可以不同,如可将不同断点对应的原始代码和断点地址集中或者分别存储,具体可基于实际应用场景需求确定,在此不做限制。
61.参见图3,图3是本技术实施例提供的对断点地址和原始代码进行备份的场景示意图。如图3所示,目标程序中包括多个代码段,在确定目标程序中断点设置指令对应的第一断点后,可确定第一断点对应的原始代码,如图3中将第一断点后的两行代码段确定为对应的原始代码,则可将第一断点后的两行代码段确定为第一断点对应的原始代码。同时可确定第一断点对应的断点地址,进而将第一断点的断点地址和对应的原始代码存储至备份地址以进行备份。
62.在基于图2所示的断点设置方法在目标程序中设置至少一个断点后,可开始运行目标程序并基于目标程序中的各断点对目标程序进行调试。在运行目标程序的过程中,若运行至目标程序中的任一断点(为方便描述,以下将该断点称为目标断点),则执行目标断点处的目标跳转功能代码以跳转至目标断点对应的置换地址。
63.下面结合图4对本技术实施例提供的断点设置方法进行进一步说明。图4是本技术实施例提供的确定断点以及设置断点的方法流程示意图。在目标程序中确定断点设置指令对应的初始断点后,可确定初始断点对应的原始代码是否包括压栈指令,若包括压栈指令,则对初始断点的断点位置进行调整得到断点设置指令对应的最终断点。若不包括压栈指令,则直接将初始断点确定为断点设置指令对应的最终断点。进一步可将最终断点的断点地址和对应的原始代码存储至备份地址以进行备份,并将最终断点对应的原始代码替换为跳转功能代码,以在目标程序运行至该最终断点时执行跳转功能代码跳转至对应的备份地址,并从备份地址获取并执行对应的调试功能代码。
64.步骤s12、从目标断点对应的置换地址获取并执行目标断点对应的目标调试功能代码。
65.在一些可行的实施方式中,在基于目标断点处的目标跳转功能代码跳转至目标断点对应的置换地址后,可从置换地址对应的存储空间获取目标断点对应的目标调试功能代码,并在置换地址执行目标调试功能代码以实现相应的功能,或者基于置换地址对应的功
能代码跳板执行目标调试功能代码以实现相应的调试功能。
66.可选地,在从置换地址获取目标断点对应的目标调试功能代码之后,可将目标调试功能代码添加至目标断点处,进而在目标断点处执行目标调试功能代码以实现相应的调试功能。
67.需要特别说明的是,上述执行目标调试功能代码的实现方式仅为示例,具体可基于实际应用场景需求确定,在此不做限制。
68.步骤s13、调试完成后,恢复目标断点处的原始代码并继续运行目标程序。
69.在一些可行的实施方式中,在执行目标断点对应的目标调试功能代码并实现相应的调试功能之后,可确定完成目标断点处的程序调试,此时可恢复目标断点处的原始代码并继续运行目标程序。
70.具体地,在调试完成后,可从目标断点对应的备份地址获取目标断点对应的目标断点地址和目标断点处的原始代码。进一步可将目标断点处的原始代码,对位于目标断点的目标断点地址处的目标跳转功能代码进行恢复,即将目标断点处的目标跳转功能代码还原为目标断点的原始代码,从而实现对目标断点处的代码还原。并且,在将目标断点处的目标跳转功能代码还原为原始代码之后,可基于运行目标程序中目标断点之后的程序,进而在目标程序运行至任一断点时,均可基于上述实现方式在对应断点停止运行并运行相对应的调试功能代码。
71.参见图5,图5是本技术实施例提供的基于断点进行程序调试的流程示意图。当目标程序运行至第一断点时,可执行跳转功能代码跳转至对应的置换地址,并执行保存现场操作,以对当前目标程序的运行进度和状态进行保存。进一步基于功能代码跳板获取并执行对应的调试功能代码以实现相应的调试功能,并在调试完成对第一断点对应的原始代码进行恢复。具体可基于备份地址存储的第一断点对应的原始代码和断点地址,将第一断点对应的跳转功能代码还原为对应的原始代码。在将第一断点对应的原始代码进行还原后,执行恢复现场操作,以恢复目标程序在进行程序调试之前的运行进度和状态。
72.下面结合图6对图5进行进一步说明,图6是本技术实施例提供的基于断点进行程序调试的场景示意图。其中,图6通过lr寄存器保存应用程序对应的pc值。当目标程序运行至第一断点并执行跳转功能代码跳转至对应的置换地址后,可对lr以外的寄存器执行压栈指令(push)以对目标程序的运行进度和状态进行保存,实现保存现场步骤。
73.进一步地,使用最基本的串口实现调试信息的输出时,由于不能在串口驱动中设置断点,因此在保存现场之后需要清除串口缓存,进而执行对应的调试功能代码。在实现相应的调试功能之后,可基于备份地址存储的第一断点对应的原始代码和断点地址对目标程序中第一断点处的代码进行还原。并进一步将第一断点的断点地址赋给lr寄存器,以对相对应的pc值进行调整。
74.进一步地,继续清楚串口缓存,并对lr寄存器以外的寄存器执行出栈指令(pop)以对目标程序的运行进度和状态进行恢复。在恢复现场之后,可基于运行第一断点之后的程序。
75.在本技术实施例中,通过断点设置指令,可在不需要额外调试硬件的参与下动态设置断点,灵活性高。通过对各断点对应的原始代码和断点地址进行备份,可在运行至任一断点并执行对应的调试功能代码之后对目标程序进行还原,无需对目标程序进行重新编
译,提升了程序调试效率,适用性高。
76.参见图7,图7是本技术实施例提供的程序调试装置的结构示意图。本技术实施例提供的程序调试装置包括:
77.跳转模块71,用于在运行目标程序的过程中,若运行至所述目标程序中的目标断点,则执行所述目标断点处的目标跳转功能代码以跳转至所述目标断点对应的置换地址;
78.调试模块72,用于从所述目标断点对应的置换地址获取并执行所述目标断点对应的目标调试功能代码;
79.恢复模块73,用于调试完成后,恢复所述目标断点处的原始代码并继续运行所述目标程序。
80.在一些可行的实施方式中,上述调试模块72,用于:
81.获取断点设置指令,在所述目标程序中确定所述断点设置指令对应的第一断点;
82.确定所述第一断点对应的第一调试功能代码,并将所述第一调试功能代码存储至所述第一断点对应的置换地址;
83.将所述目标程序中所述第一断点对应的原始代码替换为第一跳转功能代码,所述第一跳转功能代码用于跳转至所述第一断点对应的置换地址。
84.在一些可行的实施方式中,上述调试模块72,还用于:
85.确定上述第一断点的第一断点地址;
86.将上述目标程序中上述第一断点对应的原始代码和上述第一断点地址存储至上述第一断点对应的备份地址。
87.在一些可行的实施方式中,上述恢复模块73,用于:
88.从所述目标断点对应的备份地址获取所述目标断点对应的目标断点地址和所述目标断点对应的原始代码;
89.基于所述目标断点地址,将所述目标跳转功能代码还原为所述目标断点对应的原始代码,并继续运行所述目标断点后的程序。
90.在一些可行的实施方式中,上述断点设置指令包括以下至少一项:
91.在运行上述目标程序之前获取到的断点设置指令;
92.在运行上述目标程序的过程中获取到的预设指令;
93.在运行上述目标程序的过程中通过预设交互方式获取到的断点设置指令。
94.在一些可行的实施方式中,上述预设指令包括中断指令或者轮询指令中的至少一项。
95.在一些可行的实施方式中,上述第一调试功能代码对应的调试功能包括显示当前函数堆栈、打印寄存器信息、显示页表信息或者设置断点中的至少一项。
96.在一些可行的实施方式中,上述断点调试模块72,用于:
97.在上述目标程序中确定上述断点设置指令对应的初始断点;
98.若上述初始断点对应的原始代码包括压栈指令,则对上述初始断点的位置进行调整,将调整后的断点确定为上述断点设置指令对应的第一断点,上述调整后的断点对应的原始代码不包括压栈指令;
99.若上述初始断点对应的原始代码不包括压栈指令,则将上述初始断点确定为上述断点设置指令对应的第一断点。
100.具体实现中,上述程序调试装置可通过其内置的各个功能模块执行如上述图1和/或图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
101.参见图8,图8是本技术实施例提供的电子设备的结构示意图。如图8所示,本实施例中的电子设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
102.在图8所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
103.在运行目标程序的过程中,若运行至所述目标程序中的目标断点,则执行所述目标断点处的目标跳转功能代码以跳转至所述目标断点对应的置换地址:
104.从所述目标断点对应的置换地址获取并执行所述目标断点对应的目标调试功能代码;
105.调试完成后,恢复所述目标断点处的原始代码并继续运行所述目标程序。
106.在一些可行的实施方式中,上述处理器1001用于:
107.获取断点设置指令,在上述目标程序中确定上述断点设置指令对应的第一断点;
108.确定上述第一断点对应的第一调试功能代码,并将上述第一调试功能代码存储至上述第一断点对应的置换地址;
109.将上述目标程序中上述第一断点对应的原始代码替换为第一跳转功能代码,上述第一跳转功能代码用于跳转至上述第一断点对应的置换地址。
110.在一些可行的实施方式中,上述处理器1001还用于:
111.确定上述第一断点的第一断点地址;
112.将上述目标程序中上述第一断点对应的原始代码和上述第一断点地址存储至上述第一断点对应的备份地址。
113.在一些可行的实施方式中,上述处理器1001用于:
114.从上述目标断点对应的备份地址获取上述目标断点对应的目标断点地址和上述目标断点对应的原始代码;
115.基于上述目标断点地址,将上述目标跳转功能代码还原为上述目标断点对应的原始代码,并继续运行上述目标断点后的程序。
116.在一些可行的实施方式中,上述断点设置指令包括以下至少一项:
117.在运行上述目标程序之前获取到的断点设置指令;
118.在运行上述目标程序的过程中获取到的预设指令;
119.在运行上述目标程序的过程中通过预设交互方式获取到的断点设置指令。
120.在一些可行的实施方式中,上述预设指令包括中断指令或者轮询指令中的至少一项。
121.在一些可行的实施方式中,上述第一调试功能代码对应的调试功能包括显示当前函数堆栈、打印寄存器信息、显示页表信息或者设置断点中的至少一项。
122.在一些可行的实施方式中,上述处理器1001用于:
123.在上述目标程序中确定上述断点设置指令对应的初始断点;
124.若上述初始断点对应的原始代码包括压栈指令,则对上述初始断点的位置进行调整,将调整后的断点确定为上述断点设置指令对应的第一断点,上述调整后的断点对应的原始代码不包括压栈指令;
125.若上述初始断点对应的原始代码不包括压栈指令,则将上述初始断点确定为上述断点设置指令对应的第一断点。
126.应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
127.具体实现中,上述电子设备1000可通过其内置的各个功能模块执行如上述图1和/或图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
128.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图1和/或图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
129.上述计算机可读存储介质可以是前述程序调试装置或电子设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read

only memory,rom)或随机存储记忆体(random access memory,ram)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
130.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1和/或图2中各个步骤所提供的方法。
131.本技术的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或电子设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或电子设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
132.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
133.以上所揭露的仅为本技术较佳实施例而已,不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献