一种javascript代码的调试控制方法及系统技术方案

技术编号:20944205 阅读:22 留言:0更新日期:2019-04-24 02:17
本发明专利技术公开了一种javascript代码的调试控制方法及系统,该系统包括代码模块、调试器及调试工具,其中:代码模块,用于:加载原代码,为原代码加入特定标记得到标记代码,其中,原代码为javascript代码,特定标记为调用调试器中对应函数实现进入函数、跳出函数或执行代码语句行的操作的函数;调试工具,用于:加载原代码,以及在用户基于原代码实现的控制下发送相应调试指令至调试器;调试器,用于:加载及执行标记代码,在执行标记代码的过程中接收调试工具发送的调试指令,并基于调试指令通过控制与特定标记对应的函数控制标记代码的执行,以实现对应的代码调试。本申请能够减少开发工作量及维护工作量、提高开发效率。

A debugging control method and system for JavaScript code

The invention discloses a debugging control method and system of JavaScript code, which includes code module, debugger and debugging tool, in which: code module is used to load the original code and add specific tags to the original code to obtain tag code, in which the original code is JavaScript code, and the specific tags are used to call the corresponding function in the debugger to realize entry function and jump-out function. Functions for counting or executing lines of code statements; Debugging tools for loading the original code and sending debugging instructions to the debugger under the control of the user based on the original code; Debuggers for loading and executing the tag code, receiving debugging instructions sent by the debugging tools in the process of executing the tag code, and passing control and specific calibration based on the debugging instructions The corresponding function controls the execution of markup code to achieve the corresponding code debugging. This application can reduce the development workload and maintenance workload, and improve the development efficiency.

【技术实现步骤摘要】
一种javascript代码的调试控制方法及系统
本专利技术涉及软件开发
,更具体地说,涉及一种javascript代码的调试控制方法及系统。
技术介绍
现有的用于实现javascript代码调试的调试工具在开发过程中,通常采用javascript引擎提供的调试接口功能实现对应的调试控制功能。参见图1,图1是现有javascript调试工具结构关系示意图(注意现有javascript调试工具大多采用调试器与调试工具集成于一体的方式呈现,例如常见的网页浏览器软件其内部就同时存在调试工具装置和调试器装置的实现)。现有的javascript调试工具的调试控制功能由于需要javascript引擎的调试接口支持,而目前市面上的javascript引擎的种类繁多,调试接口各异,常用的javascript引擎(如:v8,InternetExplorer所携带javascript引擎等)由于某些原因无法在全平台运行(如:v8不能在ios中运行,InternetExplorer所携带javascript引擎只能在windows上运行等),并且实现质量也参差不齐,同时在后期维护过程中还需要应对由于javascript引擎调试接口的变更而增加的维护工作量。因此,若采用现有的实现方式将不可避免的需要针对不同的javascript引擎调试接口编写不同的调试器,且当用户有跨平台(如windows,android,ios等)需求时,将不可避免的面临需要支持多种javascript引擎的问题。这无疑会增加开发人员的开发工作量、降低开发效率、增大维护工作量。综上所述,现有技术中用于实现javascript代码调试的技术方案存在开发工作量较大、开发效率较低、维护工作量较大的问题。
技术实现思路
本专利技术的目的是提供一种javascript代码的调试控制系统,以解决现有技术中用于实现javascript代码调试的技术方案存在的开发工作量及维护工作量较大、开发效率较低的问题。为了实现上述目的,本专利技术提供如下技术方案:一种javascript代码的调试控制系统,包括代码模块、调试器及调试工具,其中:所述代码模块,用于:加载原代码,为所述原代码加入特定标记得到标记代码,其中,所述原代码为javascript代码,所述特定标记为调用所述调试器中对应函数实现进入函数、跳出函数或执行代码语句行的操作的函数;所述调试工具,用于:加载所述原代码,以及在用户基于所述原代码实现的控制下发送相应调试指令至所述调试器;所述调试器,用于:加载及执行所述标记代码,在执行所述标记代码的过程中接收所述调试工具发送的调试指令,并基于所述调试指令通过控制与所述特定标记对应的函数控制所述标记代码的执行,以实现对应的代码调试。优选的,所述调试器包括:堆栈管理单元,用于:跟踪所述标记代码中的特定标记,并基于跟踪所得信息为所述标记代码维护包括表示函数调用关系的函数调用堆栈的堆栈数据结构,以支持所述调试器其他对应功能的实现。优选的,所述调试器包括:断点管理单元,用于:在所述调试指令的触发下,为所述标记代码添加、启用、禁用、编辑或移除断点;调试控制单元,用于:在所述调试指令的触发下,实现对应的调试控制功能,所述调试控制功能包括启动调试、停止调试、进入函数、跳出函数、单步及由暂停调试或命中断点状态返回的继续调试。优选的,所述调试器包括:变量操作单元,用于:当在执行所述标记代码的过程中命中断点时,在所述调试指令的触发下实现针对指定变量的取值、更改值、变量类型识别的操作。优选的,所述调试器包括:断点命中通知单元,用于:按照所述调试指令暂停调试或命中断点时,将当前执行到的代码语句行的行号、当前代码语句行所属对象、当前代码语句行所属函数以及当前的函数调用堆栈发送给所述调试工具。优选的,所述调试器包括:应用关闭通知单元,用于:当所述用户手动关闭所述标记代码的程序或所述标记代码的程序自行关闭时,向所述调试工具发送应用关闭通知,以告知所述调试工具所述调试器即将关闭。优选的,所述调试器包括:性能统计单元,用于:在执行所述标记代码的过程中,统计所述标记代码的代码语句行、任意相邻两个断点之间的代码语句行及各函数分别执行的时间,并上报给所述调试工具。优选的,所述调试器包括:日志上报单元,用于:向所述调试工具发送所述调试器当前的日志数据,以告知所述用户所述调试器的运行状态;所述调试器及所述调试工具均包括:设备信息发送单元,用于:向所述调试工具或所述调试器发送本设备的预设参数信息。优选的,所述调试工具包括:展示界面,用于:展示加载得到的原代码、所述原代码中与执行的标记代码当前运行位置对应的位置及所述调试器返回的各项信息。一种javascript代码的调试控制方法,包括:加载原代码,为所述原代码加入特定标记得到标记代码,其中,所述原代码为javascript代码,所述特定标记为调用所述调试器中对应函数实现进入函数、跳出函数或执行代码语句行的操作的函数;执行所述标记代码,在执行所述标记代码的过程中,在用户基于所述原代码实现的控制下生成对应的调试指令,并基于所述调试指令通过控制与所述特定标记对应的函数控制所述标记代码的执行。本专利技术提供的技术方案中,在原代码(待调试的javascript代码)中加入能够调用对应的具有调试功能的函数以实现进入函数、跳出函数或执行代码语句行的操作的特定标记得到标记代码(带有特定标记的待调试的javascript代码),由调试工具加载原代码供用户基于原代码通过调试工具下发相应调试指令以执行调试操作,由调试器加载及执行标记代码,并通过控制与特定标记需调用的函数实现与调试指令对应的调试控制,从而实现了对javascript代码的调试;可见,本申请中调试器基于特定标记即可完成用户通过调试工具下发的调试指令对应操作,进而顺利实现javascript代码的调试,而无需调用javascript引擎的调试接口,也就避免了现有技术中依赖javascript的调试接口实现javascript代码调试时,由于针对一种javascript引擎的调试接口开发的javascript调试器只能采用该javascript引擎,更换javascript引擎后无法进行调试的情况,即若要开发一种可以支持多种javascript引擎的调试器必须相应的针对不同的javascript引擎进行开发且当javascript引擎的调试接口变更时还必须针对相应的调试器进行修改的情况,所存在的开发工作量及维护工作量较大、开发效率较低的问题,因此本申请公开的技术方案既能够减少针对多款javascript引擎开发javascript调试器的开发工作量,提高开发效率和维护效率,也能够减少针对单一javascript引擎开发javascript调试器的维护工作量,提高维护效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1是现有技术中的javascript代码调试方法的工作流程示意图。图2是本专利技术实施例公开的一种javascr本文档来自技高网
...

【技术保护点】
1.一种javascript代码的调试控制系统,其特征在于,包括代码模块、调试器及调试工具,其中:所述代码模块,用于:加载原代码,为所述原代码加入特定标记得到标记代码,其中,所述原代码为javascript代码,所述特定标记为调用所述调试器中对应函数实现进入函数、跳出函数或执行代码语句行的操作的函数;所述调试工具,用于:加载所述原代码,以及在用户基于所述原代码实现的控制下发送相应调试指令至所述调试器;所述调试器,用于:加载及执行所述标记代码,在执行所述标记代码的过程中接收所述调试工具发送的调试指令,并基于所述调试指令通过控制与所述特定标记对应的函数控制所述标记代码的执行,以实现对应的代码调试。

【技术特征摘要】
1.一种javascript代码的调试控制系统,其特征在于,包括代码模块、调试器及调试工具,其中:所述代码模块,用于:加载原代码,为所述原代码加入特定标记得到标记代码,其中,所述原代码为javascript代码,所述特定标记为调用所述调试器中对应函数实现进入函数、跳出函数或执行代码语句行的操作的函数;所述调试工具,用于:加载所述原代码,以及在用户基于所述原代码实现的控制下发送相应调试指令至所述调试器;所述调试器,用于:加载及执行所述标记代码,在执行所述标记代码的过程中接收所述调试工具发送的调试指令,并基于所述调试指令通过控制与所述特定标记对应的函数控制所述标记代码的执行,以实现对应的代码调试。2.根据权利要求1所述的系统,其特征在于,所述调试器包括:堆栈管理单元,用于:跟踪所述标记代码中的特定标记,并基于跟踪所得信息为所述标记代码维护包括表示函数调用关系的函数调用堆栈的堆栈数据结构,以支持所述调试器其他对应功能的实现。3.根据权利要求2所述的系统,其特征在于,所述调试器包括:断点管理单元,用于:在所述调试指令的触发下,为所述标记代码添加、启用、禁用、编辑或移除断点;调试控制单元,用于:在所述调试指令的触发下,实现对应的调试控制功能,所述调试控制功能包括启动调试、停止调试、暂停调试、进入函数、跳出函数、单步及由暂停调试或命中断点状态返回的继续调试。4.根据权利要求3所述的系统,其特征在于,所述调试器包括:变量操作单元,用于:当在执行所述标记代码的过程中命中断点时,在所述调试指令的触发下实现针对指定变量的取值、更改值、变量类型识别的操作。5.根据权利要求4所述的系统,其特征在于,所述调试器包括:断点命中通知单元,用于:按照所述调...

【专利技术属性】
技术研发人员:陈松林
申请(专利权)人:艾普阳科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1