CN108319548A - 一种程序代码调试方法和装置 - Google Patents
一种程序代码调试方法和装置 Download PDFInfo
- Publication number
- CN108319548A CN108319548A CN201710046481.3A CN201710046481A CN108319548A CN 108319548 A CN108319548 A CN 108319548A CN 201710046481 A CN201710046481 A CN 201710046481A CN 108319548 A CN108319548 A CN 108319548A
- Authority
- CN
- China
- Prior art keywords
- script
- debugging
- language
- debug command
- target
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
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
本申请实施例提供了一种程序代码调试方法和装置,包括:调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;确定当前调试的程序代码的语言类型;确定与当前调试的程序代码的语言类型对应的目标调试脚本;运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。本申请实施例中,无论是调试对Objective‑C语言的程序代码还是Swift语言的程序代码,用户只需要输入一个调试命令包,LLDB调试器自动调用调试命令包中相应的调试脚本进行调试,无需人工输入多个调试命令,即可实现所需的调试效果。从而简化了用户操作,降低调试难度并且可以节省调试时间。
Description
技术领域
本申请涉及软件技术领域,特别是涉及一种调试命令包生成方法,一种程序代码调试方法,一种调试命令包生成装置和一种程序代码调试装置。
背景技术
现在的程序越来越复杂,导致出现各种各样的复杂问题,因此需要用调试器来发现并解决问题。
目前iOS的调试基于苹果开发的LLDB调试器,通过LLDB命令进行调试,但LLDB命令比较多,不同的命令有不同的用途,而且参数繁多,不同参数代表不同的处理。对开发者来说,要用好调试功能,对开发者的调试功底要求较高。
而且为了达到一些常用的调试效果,需要输入多个LLDB命令进行组合操作。每次调试,都要重复输入很多类似的命令来操作。比如查找View、保存数据到文件中,需要输入多个命令一起组合来完成,这样对于开发者来说难于记住这些命令。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种调试命令包生成方法,一种程序代码调试方法,一种调试命令包生成装置和一种程序代码调试装置。
为了解决上述问题,本申请实施例公开了一种调试命令包生成方法,包括:
接收针对不同语言类型的调试脚本;所述调试脚本包括调试命令;
存储所述针对不同语言类型的调试脚本,作为调试命令包。
优选的,所述语言类型包括:Objective-C语言,及Swift语言;
所述接收针对不同语言类型的调试脚本的步骤包括:
接收针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述存储所述针对不同语言类型的调试脚本,作为调试命令包的步骤包括:
存储所述针对Objective-C语言的调试脚本,及所述针对Swift语言的调试脚本,作为调试命令包。
优选的,所述调试脚本由针对一种语言类型的封装代码和调试命令组成。
本申请实施例还公开了一种程序代码调试方法,包括:
调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;
确定当前调试的程序代码的语言类型;
确定与当前调试的程序代码的语言类型对应的目标调试脚本;
运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
优选的,所述调试命令包具有:针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述确定与当前调试的程序代码的语言类型对应的目标调试脚本的步骤包括:
若当前调试的程序代码的语言类型为Objective-C语言,则将针对Objective-C语言的调试脚本确定为目标调试脚本;
若当前调试的程序代码的语言类型为Swift语言,则将针对Swift语言的调试脚本确定为目标调试脚本。
优选的,所述调试脚本由针对一种语言类型的封装代码和调试命令组成;所述运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果的步骤包括:
运行所述目标调试脚本的调试命令和封装代码,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
本申请实施例还公开了一种调试命令包生成装置,包括:
调试脚本接收模块,用于接收针对不同语言类型的调试脚本;所述调试脚本包括调试命令;
调试命令包生成模块,用于存储所述针对不同语言类型的调试脚本,作为调试命令包。
优选的,所述语言类型包括:Objective-C语言,及Swift语言;
所述调试脚本接收模块包括:
调试脚本接收子模块,用于接收针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述调试命令包生成模块包括:
调试命令包生成子模块,用于存储所述针对Objective-C语言的调试脚本,及所述针对Swift语言的调试脚本,作为调试命令包。
优选的,所述调试脚本由针对一种语言类型的封装代码和调试命令组成。
本申请实施例还公开了一种程序代码调试装置,包括:
调试命令包调用模块,用于调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;
语言类型确定模块,用于确定当前调试的程序代码的语言类型;
目标调试脚本确定模块,用于确定与当前调试的程序代码的语言类型对应的目标调试脚本;
目标调试脚本运行模块,用于运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
优选的,所述调试命令包具有:针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述目标调试脚本确定模块包括:
第一目标调试脚本确定子模块,用于若当前调试的程序代码的语言类型为Objective-C语言,则将针对Objective-C语言的调试脚本确定为目标调试脚本;
第二目标调试脚本确定子模块,用于若当前调试的程序代码的语言类型为Swift语言,则将针对Swift语言的调试脚本确定为目标调试脚本。
优选的,所述调试脚本由针对一种语言类型的封装代码和调试命令组成;所述目标调试脚本运行模块包括:
目标调试脚本运行子模块,用于运行所述目标调试脚本的调试命令和封装代码,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
本申请实施例包括以下优点:
在本申请实施例中,将针对Objective-C语言的调试脚本和针对Swift语言的调试脚本封装在同一个命令包中,尽量屏蔽这两种语言的差异性,对外提供统一的调试命令包形式。无论是调试对Objective-C语言的程序代码还是Swift语言的程序代码,用户只需要输入一个调试命令包,LLDB调试器自动调用调试命令包中相应的调试脚本进行调试,无需人工输入多个调试命令,即可实现所需的调试效果。从而简化了用户操作,降低调试难度并且可以节省调试时间。
附图说明
图1是本申请的一种调试命令包生成方法实施例的步骤流程图;
图2是本申请的一种程序代码调试方法实施例的步骤流程图;
图3是本申请的一种调试命令包生成装置实施例的结构框图;
图4是本申请的一种程序代码调试装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
Xcode是IOS的编程软件,目前Xcode工程主要采用LLDB调试器进行调试。在调试时,用户可以在LLDB调试器输入LLDB命令对程序代码进行调试。为了达到一些的调试效果,用户需要输入多个LLDB命令进行组合操作。每次调试,都要重复输入很多类似的命令来操作。
为了简化调试过程,本申请实施例中将一些LLDB命令封装为可以实现指定的调试效果的调试命令包。用户在LLDB调试器调用调试命令包就可以实现相应的他调试效果,而无需输入多个LLDB命令,来达到相同的调试效果。
参照图1,示出了本申请的一种调试命令包生成方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,接收针对不同语言类型的调试脚本;所述调试脚本包括调试命令;
调试命令是指LLDB命令,LLDB调试器支持用户创建调试命令包,用户可以采用代码封装LLDB命令生成调试脚本。
LLDB调试器内置有Python解析器,因此可以采用Python语言编写封装代码对LLDB命令进行封装。
采用Python语言生成调试脚本的过程可以为:用户采用Python软件创建一个Python文件;在Python文件中输入针对一种语言类型的Python封装代码和LLDB命令。
用户可以根据实际需要的调试效果,输入不同的封装代码和LLDB命令。每一个调试脚本被运行后都可以实现一定的调试效果。
由于LLDB调试器支持Objective-C语言和Swift语言的程序代码,用户可以在一个Python文件输入针对Objective-C语言的调试脚本和针对Swift语言的调试脚本。由Python软件接收用户输入的针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本。
步骤102,存储所述针对不同语言类型的调试脚本,作为调试命令包。
对用户输入的针对不同语言类型的调试脚本进行存储得到调试命令包。
具体的,Python软件存储包括针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本的Python文件,作为调试命令包。
参照图2,示出了本申请的一种程序代码调试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201,调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;
调试命令是指LLDB命令。由于LLDB调试器内置有Python解析器,因此可以采用Python语言编写代码对LLDB命令进行封装生成调试脚本。
在本申请实施例中,将一些LLDB命令封装为可以实现指定的调试效果的调试命令包。
在调试之前,需要将预先封装的调试命令包加载到LLDB调试器中。调试命令包加载完成后,LLDB调试器即可以调用这些调试命令包。
例如,采用Python脚本封装的调试命令包名称为alidbg.py。
在调试之前,在用户主目录的.lldbinit文件里输入:command script import文件所在路径/alidbg.py。
这样LLDB调试器在启动时会自动加载.lldbinit文件里的Python脚本。
当要调试时,先运行程序代码,然后在运行到想要调试的相关代码处让程序暂停下来(暂停运行),一般是在相关代码处设置断点,程序运行到断点处就会自动暂停运行。这时用户可以在LLDB调试器的输入框输入调试命令进行调试。本申请实施例中,用户可以在LLDB调试器的输入框输入调试命令包的名称。LLDB调试器根据输入的调试命令包的名称调用对应的调试命令包。
目前,Xcode可支持Objective-C和Swift这两种编程语言。同样,LLDB调试器也支持对Objective-C和Swift编程语言的程序代码进行调试。
在本申请实施例中,一个调试命令包同时具有针对Objective-C语言程序代码的调试脚本和针对Swift语言程序代码的调试脚本。并且针对Objective-C语言程序代码的调试脚本和针对Swift语言程序代码的调试脚本,其实现的调试效果是一样的,只是脚本中的封装代码、调试命令和参数有所不同。也就是说,在针对Objective-C语言程序代码和Swift语言程序代码,实现某种调试效果时,用户可以调用同一个调试命令包进行调试。
以下,以打印对象信息用的expression命令举例说明:
对于Objective-C对象,调试命令如下:
expression-l objc++-O--<Objective-C对象指针>
对于Swift对象:调试命令如下:
expression-l Swift-O--<Swift对象指针>
expression命令添加了-l<source language)来区分Swift和Objective-C对象。
需要说明的是,由于Objective-C语言和Swift语言具有很大的差异性,在封装针对Objective-C语言的调试命令和针对Swift语言的调试命令时,需要根据语言各自的特性,增加相应的参数。
例如,对于Swift对象:命令可以为:
expression-l Swift-d r-O--<Swift对象指针>
如果对象被一个基类指针获取,由于Objective-C是完全动态的语言,而Swift对象只支持类似C++那样的多态性,导致对于Swift语言要打印出真实的对象,需要额外添加-d r(–dynamic-type run-target)参数。
步骤202,确定当前调试的程序代码的语言类型;
LLDB调试器支持至少一种语言类型的程序代码。在调试前,LLDB调试器首先需要确定当前调试的程序代码的语言类型。如确定当前调试的程序代码的是属于Objective-C语言,还是Swift语言。
步骤203,确定与当前调试的程序代码的语言类型对应的目标调试脚本;
由于调试命令包中包括针对至少一种语言类型的调试脚本。LLDB调试器需要从调试命令包中确定与当前调试的程序代码的语言类型对应的调试脚本。
具体的,若当前调试的程序代码的语言类型为Objective-C语言,则将针对Objective-C语言的调试脚本,确定为目标调试脚本;若当前调试的程序代码的语言类型为Swift语言,则将针对Swift语言的调试脚本,确定为目标调试脚本。
步骤204,运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
LLDB调试器运行调试命令包中的目标调试脚本后,获得与目标调试脚本中的调试命令相应的程序代码运行结果。
在本申请实施例中,调试脚本由针对一种语言类型的封装代码和调试命令组成;所述运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果的步骤可以包括:
运行所述目标调试脚本的调试命令和封装代码,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。用户可以根据程序代码运行结果,对程序代码进行调试。例如,调试命令包中封装了针对一种语言类型的程序代码实现打印功能的调试脚本,LLDB调试器运行该调试脚本中的调试命令,即可打印指定的程序代码运行结果。又例如,调试命令包中封装了实现把imageview存为本地图片文件的功能的调试脚本,LLDB调试器运行该调试脚本中的调试命令后,将程序代码运行结果得到的imageview存为本地图片文件。而在不使用调试命令包的情况下,用户需要输入大量的调试命令才能实现把imageview存为本地图片文件的功能。
LLDB调试器本身是一个调试平台,它只提供了一些基础的LLDB命令,而对用户调试来说,他可能更关心调试命令包提供了具体什么功能,一个调试命令包实现了一个具体的功能对用户来说可能更直接一点,而不需要关注为了实现一个调试功能,我得需要对基础LLDB命令的细节一一了解。
在本申请实施例中,将针对Objective-C语言的调试脚本和针对Swift语言的调试脚本封装在同一个命令包中,尽量屏蔽这两种语言的差异性,对外提供统一的调试命令包形式。无论是调试对Objective-C语言的程序代码还是Swift语言的程序代码,用户只需要输入一个调试命令包,LLDB调试器自动调用调试命令包中相应的调试脚本进行调试,无需人工输入多个调试命令,即可实现所需的调试效果。从而简化了用户操作,降低调试难度并且可以节省调试时间。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了本申请的一种调试命令包生成装置实施例的结构框图,具体可以包括如下模块:
调试脚本接收模块301,用于接收针对不同语言类型的调试脚本;所述调试脚本包括调试命令;
调试命令包生成模块302,用于存储所述针对不同语言类型的调试脚本,作为调试命令包。
在本申请实施例中,所述语言类型包括:Objective-C语言,及Swift语言;
所述调试脚本接收模块301可以包括:
调试脚本接收子模块,用于接收针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述调试命令包生成模块包括:
调试命令包生成子模块,用于存储所述针对Objective-C语言的调试脚本,及所述针对Swift语言的调试脚本,作为调试命令包。
在本申请实施例中,所述调试脚本由针对一种语言类型的封装代码和调试命令组成。
参照图4,示出了本申请的一种程序代码调试装置实施例的结构框图,具体可以包括如下模块:
调试命令包调用模块401,用于调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;
语言类型确定模块402,用于确定当前调试的程序代码的语言类型;
目标调试脚本确定模块403,用于确定与当前调试的程序代码的语言类型对应的目标调试脚本;
目标调试脚本运行模块404,用于运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
在本申请实施例中,所述调试命令包具有:针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述目标调试脚本确定模块403可以包括:
第一目标调试脚本确定子模块,用于若当前调试的程序代码的语言类型为Objective-C语言,则将针对Objective-C语言的调试脚本确定为目标调试脚本;
第二目标调试脚本确定子模块,用于若当前调试的程序代码的语言类型为Swift语言,则将针对Swift语言的调试脚本确定为目标调试脚本。
在本申请实施例中,所述调试脚本由针对一种语言类型的封装代码和调试命令组成;所述目标调试脚本运行模块404可以包括:
目标调试脚本运行子模块,用于运行所述目标调试脚本的调试命令和封装代码,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
在本申请实施例中,将针对Objective-C语言的调试脚本和针对Swift语言的调试脚本封装在同一个命令包中,尽量屏蔽这两种语言的差异性,对外提供统一的调试命令包形式。无论是调试对Objective-C语言的程序代码还是Swift语言的程序代码,用户只需要输入一个调试命令包,LLDB调试器自动调用调试命令包中相应的调试脚本进行调试,无需人工输入多个调试命令,即可实现所需的调试效果。从而简化了用户操作,降低调试难度并且可以节省调试时间。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种调试命令包生成方法,一种程序代码调试方法,一种调试命令包生成装置和一种程序代码调试装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种调试命令包生成方法,其特征在于,包括:
接收针对不同语言类型的调试脚本;所述调试脚本包括调试命令;
存储所述针对不同语言类型的调试脚本,作为调试命令包。
2.根据权利要求1所述的方法,其特征在于,所述语言类型包括:Objective-C语言,及Swift语言;
所述接收针对不同语言类型的调试脚本的步骤包括:
接收针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述存储所述针对不同语言类型的调试脚本,作为调试命令包的步骤包括:
存储所述针对Objective-C语言的调试脚本,及所述针对Swift语言的调试脚本,作为调试命令包。
3.根据权利要求1所述的方法,其特征在于,所述调试脚本由针对一种语言类型的封装代码和调试命令组成。
4.一种程序代码调试方法,其特征在于,包括:
调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;
确定当前调试的程序代码的语言类型;
确定与当前调试的程序代码的语言类型对应的目标调试脚本;
运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
5.根据权利要求4所述的方法,其特征在于,所述调试命令包具有:针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述确定与当前调试的程序代码的语言类型对应的目标调试脚本的步骤包括:
若当前调试的程序代码的语言类型为Objective-C语言,则将针对Objective-C语言的调试脚本确定为目标调试脚本;
若当前调试的程序代码的语言类型为Swift语言,则将针对Swift语言的调试脚本确定为目标调试脚本。
6.根据权利要求4所述的方法,其特征在于,所述调试脚本由针对一种语言类型的封装代码和调试命令组成;所述运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果的步骤包括:
运行所述目标调试脚本的调试命令和封装代码,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
7.一种调试命令包生成装置,其特征在于,包括:
调试脚本接收模块,用于接收针对不同语言类型的调试脚本;所述调试脚本包括调试命令;
调试命令包生成模块,用于存储所述针对不同语言类型的调试脚本,作为调试命令包。
8.根据权利要求7所述的装置,其特征在于,所述语言类型包括:Objective-C语言,及Swift语言;
所述调试脚本接收模块包括:
调试脚本接收子模块,用于接收针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述调试命令包生成模块包括:
调试命令包生成子模块,用于存储所述针对Objective-C语言的调试脚本,及所述针对Swift语言的调试脚本,作为调试命令包。
9.根据权利要求8所述的装置,其特征在于,所述调试脚本由针对一种语言类型的封装代码和调试命令组成。
10.一种程序代码调试装置,其特征在于,包括:
调试命令包调用模块,用于调用调试命令包;所述调试命令包具有与至少与一种语言类型对应的调试脚本;所述调试脚本具有调试命令;
语言类型确定模块,用于确定当前调试的程序代码的语言类型;
目标调试脚本确定模块,用于确定与当前调试的程序代码的语言类型对应的目标调试脚本;
目标调试脚本运行模块,用于运行所述目标调试脚本,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
11.根据权利要求10所述的装置,其特征在于,所述调试命令包具有:针对Objective-C语言的调试脚本,及针对Swift语言的调试脚本;
所述目标调试脚本确定模块包括:
第一目标调试脚本确定子模块,用于若当前调试的程序代码的语言类型为Objective-C语言,则将针对Objective-C语言的调试脚本确定为目标调试脚本;
第二目标调试脚本确定子模块,用于若当前调试的程序代码的语言类型为Swift语言,则将针对Swift语言的调试脚本确定为目标调试脚本。
12.根据权利要求10所述的装置,其特征在于,所述调试脚本由针对一种语言类型的封装代码和调试命令组成;所述目标调试脚本运行模块包括:
目标调试脚本运行子模块,用于运行所述目标调试脚本的调试命令和封装代码,获得与所述目标调试脚本的调试命令相应的程序代码运行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710046481.3A CN108319548A (zh) | 2017-01-18 | 2017-01-18 | 一种程序代码调试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710046481.3A CN108319548A (zh) | 2017-01-18 | 2017-01-18 | 一种程序代码调试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108319548A true CN108319548A (zh) | 2018-07-24 |
Family
ID=62891216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710046481.3A Pending CN108319548A (zh) | 2017-01-18 | 2017-01-18 | 一种程序代码调试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108319548A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210089419A1 (en) * | 2019-09-25 | 2021-03-25 | Alibaba Group Holding Limited | Debugging unit and processor |
CN112905470A (zh) * | 2021-02-23 | 2021-06-04 | 中国平安人寿保险股份有限公司 | 接口调用方法、装置、计算机设备及介质 |
CN113326190A (zh) * | 2021-05-27 | 2021-08-31 | 北京百度网讯科技有限公司 | 代码覆盖率的确定方法、装置和电子设备 |
CN113407160A (zh) * | 2021-05-17 | 2021-09-17 | 江苏航天七零六信息科技有限公司 | 一种面向国产操作***和硬件平台的多语言调试器设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847118A (zh) * | 2009-03-24 | 2010-09-29 | 迈普通信技术股份有限公司 | 自动化测试*** |
CN102306122A (zh) * | 2011-09-14 | 2012-01-04 | 北京星网锐捷网络技术有限公司 | 自动化测试方法及设备 |
EP2610754A1 (en) * | 2011-12-28 | 2013-07-03 | Verisign, Inc. | Test automation environment for testing domain name resolution |
CN103197947A (zh) * | 2012-01-04 | 2013-07-10 | 中兴通讯股份有限公司 | 脚本处理方法及装置 |
CN105893238A (zh) * | 2015-08-04 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种代码调试方法及装置 |
-
2017
- 2017-01-18 CN CN201710046481.3A patent/CN108319548A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847118A (zh) * | 2009-03-24 | 2010-09-29 | 迈普通信技术股份有限公司 | 自动化测试*** |
CN102306122A (zh) * | 2011-09-14 | 2012-01-04 | 北京星网锐捷网络技术有限公司 | 自动化测试方法及设备 |
EP2610754A1 (en) * | 2011-12-28 | 2013-07-03 | Verisign, Inc. | Test automation environment for testing domain name resolution |
CN103197947A (zh) * | 2012-01-04 | 2013-07-10 | 中兴通讯股份有限公司 | 脚本处理方法及装置 |
CN105893238A (zh) * | 2015-08-04 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 一种代码调试方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210089419A1 (en) * | 2019-09-25 | 2021-03-25 | Alibaba Group Holding Limited | Debugging unit and processor |
US11755441B2 (en) * | 2019-09-25 | 2023-09-12 | Alibaba Group Holding Limited | Debugging unit and processor |
CN112905470A (zh) * | 2021-02-23 | 2021-06-04 | 中国平安人寿保险股份有限公司 | 接口调用方法、装置、计算机设备及介质 |
CN113407160A (zh) * | 2021-05-17 | 2021-09-17 | 江苏航天七零六信息科技有限公司 | 一种面向国产操作***和硬件平台的多语言调试器设计方法 |
CN113326190A (zh) * | 2021-05-27 | 2021-08-31 | 北京百度网讯科技有限公司 | 代码覆盖率的确定方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345531B (zh) | 一种测试方法、装置及*** | |
CN107291438B (zh) | 自动化脚本的生成方法、装置及电子设备 | |
US10209968B2 (en) | Application compiling | |
CN108319548A (zh) | 一种程序代码调试方法和装置 | |
CN108345535A (zh) | mock测试方法、装置及设备 | |
US8615750B1 (en) | Optimizing application compiling | |
CN106970873A (zh) | 线上mock测试方法、装置及*** | |
US20130167123A1 (en) | Application debugging | |
US20130298110A1 (en) | Software Visualization Using Code Coverage Information | |
US9122798B2 (en) | Debugger with method restart capability | |
CN107015903B (zh) | 一种界面测试程序的生成方法、装置及电子设备 | |
US7680668B2 (en) | Method for generating a language-independent regression test script | |
CN108153533B (zh) | 制作安装程序的方法和装置、程序的安装方法和装置 | |
CN107092474B (zh) | 程序开发方法、etl处理方法及装置 | |
CN111523065B (zh) | 富文本数据处理方法、装置、电子设备及计算机存储介质 | |
CN112925583B (zh) | 宿主应用能力扩展方法、装置、设备以及存储介质 | |
CN113590491B (zh) | 一种测试平台和产品测试方法 | |
CN111679828B (zh) | 一种数据处理的方法及装置、电子设备、存储介质 | |
CN106126240A (zh) | 一种定制移动终端桌面快捷图标的方法及*** | |
CN106776285B (zh) | 网页前端调试方法及装置 | |
CN110851370B (zh) | 程序测试方法及装置、存储介质 | |
CN111611008A (zh) | 一种软件代码打包部署方法、装置、设备及存储介质 | |
CN110888641A (zh) | 一种脚本自动生成方法、装置、服务器及存储介质 | |
CN113641594B (zh) | 跨端自动化测试方法以及相关装置 | |
CN112596751B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180724 |
|
RJ01 | Rejection of invention patent application after publication |