CN113626308A - 一种代码调试方法、装置、电子设备及存储介质 - Google Patents
一种代码调试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113626308A CN113626308A CN202110762450.4A CN202110762450A CN113626308A CN 113626308 A CN113626308 A CN 113626308A CN 202110762450 A CN202110762450 A CN 202110762450A CN 113626308 A CN113626308 A CN 113626308A
- Authority
- CN
- China
- Prior art keywords
- building block
- debugging
- information
- original
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 230000006870 function Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 21
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000007639 printing Methods 0.000 claims description 4
- 238000005096 rolling process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
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/3644—Software debugging by instrumenting at runtime
-
- 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/3636—Software debugging by tracing the execution of the program
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
本发明公开了一种代码调试方法、装置、电子设备及存储介质,应用于图形化编程平台,图形化编程平台设置有编程界面,该方法包括:响应于调试积木添加指令,在原始积木中添加预设的调试积木,原始积木为编程界面上由至少一个积木组合成的积木组合,调试积木用于输出原始积木的执行结果;根据调试积木生成目标积木;响应于运行指令,将目标积木转化为目标源代码后运行;根据目标源代码的运行结果,输出目标积木对应的调试信息;根据调试信息对原始积木进行定位。本发明实施例通过在原始积木添加预设的调试积木后,根据调试积木获取原始积木的输出结果,从而方便用户能够及时快速的进行代码调试,提高代码的调试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码调试方法、装置、电子设备及存储介质。
背景技术
代码调试是将编制的程序代码投入实际运行前,用手工或编译程序代码等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息***正确性的必不可少的步骤。编完计算机程序代码,必须送入计算机中测试。根据测试时所发现的错误,进一步诊断,找出原因和具体的位置进行修正。
现有技术的图形化编程平台中是采用通过拖拽积木,实现编程。图形化编程平台对积木进行调试时,只能通过断开积木链接或是使用排查法对积木进行调试。现有图形化编程平台的代码调试方法操作复杂,若存在多个积木,要实现对积木进行调试,花费时间长,调试效率低。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明提供了一种代码调试方法、装置、电子设备及存储介质,旨在解决现有图形化编程平台的代码调试方法操作复杂,若存在多个积木,要实现对积木进行调试,花费时间长,调试效率低的问题。
本发明的技术方案如下:
本发明第一实施例提供了一种代码调试方法,应用于图形化编程平台,图形化编程平台设置有编程界面,方法包括:
响应于调试积木添加指令,在原始积木中添加预设的调试积木,所述原始积木为所述编程界面上由至少一个积木组合成的积木组合,所述调试积木用于输出所述原始积木的执行结果;
根据所述调试积木生成目标积;
响应于运行指令,将所述目标积木转化为目标源代码后运行;
根据所述目标源代码的运行结果,输出所述目标积木对应的调试信息;
根据所述调试信息对所述原始积木进行定位。
进一步地,所述图形化编程平台还设置有控制台显示界面;
所述在原始积木中添加预设的调试积木,包括:
在所述原始积木中添加预设的调试输出积木,所述调试输出积木用于在所述控制台显示界面输出调试信息;
和/或是,在所述原始积木中添加预设的报错调试积木,所述报错调试积木用于在所述控制台显示界面输出报错信息。
进一步地,所述若预设的调试积木为报错调试积木,
则根据所述调试信息对调试积木进行定位后,包括:
响应于所述报错信息的触发指令,在所述编程界面上显示所述报错信息对应的原始积木;
获取所述原始积木的背景,控制所述背景处于闪烁状态。
进一步地,所述获取所述原始积木的背景,控制所述背景处于闪烁状态后,还包括:
响应于所述原始积木的修改指令,则控制所述背景停止闪烁。
进一步地,所述根据所述调试信息对所述原始积木进行定位,包括:
根据调试信息获取所述原始积木的积木标识和屏幕标识;
根据所述积木标识和屏幕标识,获取所述原始积木所在的积木位置;
计算出当前编程界面显示区域相对于积木位置的偏移量;
在当前编程界面位置滚动偏移量,实现原始积木定位。
进一步地,所述图形化编程平台设置有控制台UI(user interface,用户界面)组件,所述控制台UI组件用于控制所述控制台界面输出信息;
则所述响应于运行指令,将所述目标积木转化为目标源代码后运行前,还包括:
定义一消息管理器,所述消息管理器用于对消息类型进行管理;
在所述消息管理器中将控制台UI组件订阅为一观察者;
在所述消息管理器对调试信息的类型进行定义;
根据控制台UI组件获取所述调试信息。
进一步地,所述调试积木中设置有调试函数,则根据所述目标源代码的运行结果,输出所述目标积木对应的调试信息,包括:
获取调试函数的调用结果,所述调用结果包括调试积木的积木信息和调试信息;
将所述调用结果发送至所述控制台UI组件;
通过控件台UI组件在所述控制台显示界面输出调试信息,所述调试信息的类型为自定义的打印信息。
本发明的另一实施例提供了一种代码调试装置,应用于图形化编程平台,所述图形化编程平台设置有编程界面,装置包括:
调试积木添加模块,用于响应于调试积木添加指令,在原始积木中添加预设的调试积木,所述原始积木为所述编程界面上由至少一个积木组合成的积木组合,所述调试积木用于输出所述原始积木的执行结果;
目标积木生成模块,用于根据所述调试积木生成目标积木;
运行模块,用于响应于运行指令,将所述目标积木转化为目标源代码后运行;
调试信息输出模块,用于根据所述目标源代码的运行结果,输出所述目标积木对应的调试信息;
定位模块,用于根据所述调试信息对所述原始积木进行定位。
本发明的另一实施例提供了一种电子设备,所述电子设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的代码调试方法。
本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的代码调试方法。
有益效果:本发明实施例通过在原始积木添加预设的调试积木后,根据调试积木获取原始积木的输出结果,为用户查看原始代码输出结果提供了方便,而且调试积木不影响积木的运行结果,从而方便用户能够及时快速的进行代码调试,提高代码的调试效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明一种代码调试方法较佳实施例的流程图;
图2a为本发明一种代码调试方法的具体应用实施例的调试输出积木的积木样式示意图;
图2b为本发明一种代码调试方法的具体应用实施例的报错调试积木的积木样式示意图;
图3为本发明一种代码调试方法的具体应用实施例的报错信息示意图;
图4为本发明一种代码调试方法的具体应用实施例的报错信息的点击指令示意图;
图5为本发明一种代码调试装置的较佳实施例的功能模块示意图;
图6为本发明一种电子设备的较佳实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合附图对本发明实施例进行介绍。
本发明实施例提供了一种代码调试方法,应用于图形化编程平台,图形化编程平台设置有编程界面,请参阅图1,图1为本发明一种代码调试方法较佳实施例的流程图。如图1所示,其包括步骤:
步骤S101、响应于调试积木添加指令,在原始积木中添加预设的调试积木,原始积木为编程界面上由至少一个积木组合成的积木组合,调试积木用于输出原始积木的执行结果;
具体地,本发明实施例的代码调试方法通过图形化编程平台进行实现,图形化编程平台就是编写有界面的程序,编程语言是一种被标准化的交流技巧,用来向计算机发出指令,定义计算机程序。使用图形化编程可以进行良好的页面布局,在现有的很多web应用中,其应用程序的页面布局经常需要使用图像,这样能够让页面整体效果更加友好。
本发明实施例中图形化编程平台,通过积木的组合,实现编程。每个积木内嵌套了程序语言。积木有多种类型对应不同的功能,每一种积木都嵌套了对应的程序语言。图形化编程平台设置有编程界面,在编程界面上对积木进行拖拽操作后,完成积木的堆叠,即可实现一定功能。在编程界面上的积木堆叠完成后,即可对积木对应的程序进行运行。
编程界面接收到用户的调试积木添加指令后,在原始积木中添加预设的调试积木。原始积木为编程界面上至少一个积木组合而成的积木组合,积木组合是具备一定功能的积木。调试积木是用户预先定义的输出原始积木的执行结果的积木。
调试积木添加指令可以是图形化编程界面上设置的积木编辑指令,用户可通过从编程界面上预设的积木池中拖动相应的积木至编程界面进行堆叠后,生成目标积木。
步骤S102、根据调试积木生成目标积木;
具体实施时,在原有的积木添加调试积木后,生成具备调试信息的目标积木。调试积木并不影响原始积木的输出结果,只是对原始积木的输出结果进行输出,方便用户实时查看原始积木的输出结果。因此目标积木是在原有的积木的基础上,还可以查看原始积木的输出结果,或是调试积木中的调试信息。
步骤S103、响应于运行指令,将目标积木转化为目标源代码后运行;
具体实施时,图形化编程平台接收到用户的运行指令后,运行所述目标积木,运行过程中需要将目标积木转化积木对应的目标源代码,对目标源代码进行运行。
运行指令可以是图形化编程界面的运行按钮或是运行对应的图片按钮。在实际应用中,可以根据需求对运行指令进行限制,本发明实施例对此不作限制。
目标源代码是指由编程界面上组合后的积木所对应的代码,该源代码的程序语言格式根据积木中嵌套的语言为准,可以是Java语言、C语言、PYTHON语言等程序语言中一种,具体此处不做限定。
步骤S104、根据目标源代码的运行结果,输出目标积木对应的调试信息;
具体实施时,获取目标源代码的运行结果,根据目标源代码的运行结果获取对应的调试信息。本发明实施例的调试信息一般是指用户自定义的调试信息。
目标积木中的调试积木包括调试信息及调试信息输出函数,目标源代码运行后,根据调试信息输出函数的在图形化编程平台的界面上输出所述调试信息。
步骤S105、根据调试信息对原始积木进行定位。
具体实施时,在图形化编程平台的界面上输出调试信息,可通过调试信息对原始积木进行定位。具体地,可通过在调试信息中标识原始积木的位置,从而方便用户对原始积木进行定位。或是通过用户点击调试信息,直接定位至原始积木。
在一个实施例中,图形化编程平台还设置有控制台显示界面;
在原始积木中添加预设的调试积木,包括:
在原始积木中添加预设的调试输出积木,调试输出积木用于在控制台显示界面输出调试信息;
和/或是,在原始积木中添加预设的报错调试积木,报错调试积木用于在控制台显示界面输出报错信息。
具体实施时,在图形化编程平台还设置有控制台显示界面,调试积木可以是调试输出积木和/或报错调试积木;其中调试输出积木在目标源代码运行过程中,会在控制台显示界面输出调试信息。该调试信息一般为用户自定义的调试内容。在实际应用时,可根据需要对调试内容进行设置,本发明实施例对此不作限制。
报错调试积木在目标源代码运行过程中,会在控制台显示界面输出报错信息。其中报错信息一般为用户自定义的报错内容。在实际应用时,可根据需要对报错内容进行设置,本发明实施例对此不作限制。
在一个实施例中,若预设的调试积木为报错调试积木,
则根据调试信息对调试积木进行定位后,包括:
响应于报错信息的触发指令,在编程界面上显示报错信息对应的原始积木;
获取原始积木的背景,控制背景处于闪烁状态。
具体实施时,在控制台显示界面接收到用户的提示信息触发指令后,获取报错信息对应的原始积木,对原始积木的位置进行定位,并在编程界面的可视区域展示原始积木。提示信息触发指令可以是用户点击控制台界面的提示信息,可以是单击控制台界面的提示信息,也可以是双击控制台界面的提示信息或是右击控制台界面的提示信息。实际应用中,可根据需要对提示信息触发指令进行设置,此处不做限制。
在定位原始积木后,获取原始积木在编程界面的背景,通过JavaScript blink技术,控制原始积木的背景处于闪烁状态,方便用户的快速获取原始积木在编程界面中的位置。blink()方法用于显示闪动的字符串。具体的语法为stringObject.blink()。
在实际应用时,可以根据需求对控制积木背景闪烁的方式进行限制,本发明实施例对此不作限制。
在一个实施例中,若采用积木背景闪烁的方式,则获取原始积木的背景,控制背景处于闪烁状态后,所述方法还可以包括:
响应于原始积木的修改指令,则控制背景停止闪烁。
具体实施时,当编程页面检测到用户的对原始积木的修改指令,则此时判定用户已实际定位原始积木的位置,则控制原始积木背景停止闪烁,检测到修改指令指示用户已接收到报错的积木,确定了错误积木的位置,实现了积木调试差错,此时停止背景闪烁,为下一次用户修改调试做准备。
在一个实施例中,根据调试信息对原始积木进行定位,包括:
根据调试信息获取原始积木的积木标识和屏幕标识;
根据积木标识和屏幕标识,获取原始积木所在的积木位置;
计算出当前编程界面显示区域相对于积木位置的偏移量;
在当前编程界面位置滚动偏移量,实现原始积木定位。
具体实施时,调试信息中会携带积木ID(identity,标识)和屏幕ID,根据调试信息获取原始积木的积木ID和屏幕ID,然后再根据积木ID和屏幕ID,获取到当前积木所在位置,并计算出当前可视区相对于积木位置的偏移量,在当前积木工作区的位置滚动该偏移量,从而实现积木定位。本发明实施例中的积木ID用于积木进行标识,在原始积木中,每个积木都有对应的积木ID,积木ID是唯一的,通过积木ID可以定位到对应的积木。而屏幕ID对屏幕进行标识。每个屏幕ID也是唯一的,通过屏幕ID可定位到积木所在的屏幕位置,再通过积木ID,在定位到的屏幕位置中获取积木的位置。通过积木ID和屏幕ID,获取原始积木在编程区域中的位置,通过滚动偏移量,在屏幕中显示中定位的原始积木,实现快速定位到原始积木的位置,为用户查看积木的错误信息提供了方便。
在一个实施例中,图形化编程平台设置有控制台UI组件,控制台UI组件用于控制控制台界面输出信息;
则响应于运行指令,将目标积木转化为目标源代码后运行前,还包括:
定义一消息管理器,消息管理器用于对消息类型进行管理;
在消息管理器中将控制台UI组件订阅为一观察者;
在消息管理器对调试信息的类型进行定义;
根据控制台UI组件获取调试信息。
具体实施时,定义一个消息管理器,其中消息管理器,负责定义消息类型和读取,写入,以及消息发送;消息管理器是一种控制台管理器,消息管理器包括但不限于consoleManager,在一些其他的实施例中,也可以采用控制台文件管理器ranger来实现文件管理,本发明实施例对此不做限制。将控制台UI组件订阅为一个观察者;在控制台输出‘调试信息’对应的类型,其中输出调试信息对应的类型包括但不限于consoleManager.log,在一些其他的实施例中也可采用其他的方式输出调试信息对应的类型,本发明实施例对此不做限制;在控制台报错‘报错信息’对应的类型包括但不限于consoleManager.customError。在一些其他的实施例中也可采用其他的方式对报错信息对应的类型进行输出,本发明实施例对此不做限制。
其中Console是控制台是Windows的控制台窗口增强。控制台功能包括:多个标签,文本编辑器(比如文本选择),不同类型的背景,字母和颜色的透明度,可配置的字体,不同的窗口样式。Console Manager是一种控制台程序。通过控制器UI组件的观察者特征来获取调试信息。通过预先在控制器中对调试信息的类型进行定义,实现控制台UI组件获取调试信息,方便用户在在UI组件查看调试信息。
在一个实施例中,调试积木中设置有调试函数,则根据目标源代码的运行结果,输出目标积木对应的调试信息,包括:
获取调试函数的调用结果,调用结果包括调试积木的积木信息和调试信息;
将调用结果发送至控制台UI组件;
通过控件台UI组件在控制台显示界面输出调试信息,调试信息的类型为自定义的打印信息。
具体实施时,当用户点击运行代码时,将积木逻辑转化为代码逻辑的方法包括但不限于通过Blink的JavascriptGenerator库进行转换,在一些其他的实施例中也可采用其他的方式将积木转化为代码,本发明实施例对此不做限制。其中“在控制台输出‘调试信息’”这块积木将会转化为带有当前积木信息,和用户自定义的打印信息的函数代码。“在控制台报错‘报错信息’”这块积木将会转化为带有当前积木信息,和用户自定义的报错信息的函数代码。
当该函数被调用后会将积木信息和用户自定义的打印消息发送出去,发送方式包括但不限于通过consoleManager.pushMessage发送出去,在一些其他的实施例还可采用其他的发送方式,本发明实施例对此不做限制。该方法使用的是观察者的设计模式,其中在控制台UI组件中已经提前定义好了观察者,当消息推送时便会被观察者(控制台)捕获到,从而根据捕获到的信息实现业务逻辑。
Blink包含一个主线程,多个Worker线程,还有一些其他的线程。几乎所有重要的工作都运行在主线程上。包括运行JavaScript(除了Workers),DOM生成,CSS样式和布局计算等,所以交互性能的优化关键主要围绕主线程。Blink会为Web workers,Serviceworkers创建出独立的线程。虽然运行的都是JavaScript,但主线程与worker线程的运行环境是不共享的,需要通过消息来传递数据。
JavascriptGenerator库是一个生成器,生成器是在函数内部运行的一些代码,JavascriptGenerator库在返回值后,它会自行暂停,并且调用程序可以要求取消暂停并返回另一个值。这种“返回”不是传统的从函数return。所以它被赋予了一个特殊的名称——yield。生成器语法因语言而异。Javascript的生成器语法类似于PHP。
在javascript中,如果想要使用生成器,则需要:定义特殊的生成器函数;调用该函数创建一个生成器对象;在循环中使用该生成器对象,或直接调用其next方法。
PushMessageData是Push API的接口,提供了一些方法,使您可以以各种格式获取服务器发送的推送数据。该接口的方法可以多次调用。通过Push API接收的消息将由push服务加密发送,然后由浏览器自动解密,然后才能通过PushMessageData接口的方法进行访问。本发明实施例可通过控制台显示界面输出调试信息,调试信息可采用用户自定义的打印信息,从而方便用户查看积木的调试是否正常,方便用户查看积木的调试结果。
在一个实施例中,本发明实施例采用的技术方案是:使用Javascript,HTML语言,引用BlinkJS库。通过BlinkJS库实现调试积木的添加。定义两种积木在控制台输出‘调试信息’和在控制台报错‘报错信息’;如图2a所示,图2a为在控制台输出‘调试信息’的调试输出积木的积木样式示意图;如图2b所示,图2b为在控制台报错‘报错信息’的报错调试积木的示意图;用户在拼接积木中选择性的拼接以上任意积木,当代码运行到此处是就会在控制台输出相应信息。
其中HTML语言是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
如图3所示,在原始积木中同时添加调试输出积木和报错调试积木。当用户拼接原始积木和调试输出积木和报错调试积木时,点击运行,控制台将会弹出,并出现用户自定义的调试信息。
如图4所示,当用户点击错误信息时,积木会被定义到可视区域,并且积木的背景闪烁。当用户修改该积木时,闪烁效果消失。
具体实施时,定义一个消息管理器consoleManager,负责定义消息类型和读取,写入,以及消息发送;
将控制台UI组件订阅为一个观察者;
“在控制台输出‘调试信息’”和“在控制台报错‘报错信息’”分别对应的就是consoleManager.log和consoleManager.customError两种类型;
当用户点击运行代码时,并通过Blink的JavascriptGenerator库,将积木逻辑转化为代码逻辑,其中“在控制台输出‘调试信息’”这块积木将会转化为带有当前积木信息,和用户自定义的打印信息的函数代码。“在控制台报错‘报错信息’”这块积木将会转化为带有当前积木信息,和用户自定义的报错信息的函数代码。
当该函数被调用后会将积木信息和用户自定义的打印消息通过consoleManager.pushMessage发送出去,该方法使用的是观察者的设计模式,其中在控制台UI组件中已经提前定义好了观察者,当pushMessage时便会被观察者(控制台)捕获到,从而根据捕获到的信息实现业务逻辑。
当调试信息成功并上报至控制台中后,信息中会携带积木ID,和屏幕的ID,然后在根据积木ID,获取到当前积木所在位置,并计算出当前可视区相对于积木位置的偏移量,在当前积木工作区的位置滚动该偏移量。从而实现积木定位。
本发明实施例通过该方法能用户能过够及时快速的进行代码的调试,并在控制台中输出信息,以快速帮助用户找更加高效的开发项目,提高代码调试效率。
需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
本发明另一实施例提供一种代码调试装置,应用于图形化编程平台,图形化编程平台设置有编程界面,如图5所示,装置1包括:
调试积木添加模块11,用于响应于调试积木添加指令,在原始积木中添加预设的调试积木,原始积木为编程界面上由至少一个积木组合成的积木组合,调试积木用于输出原始积木的执行结果;
目标积木生成模块12,用于根据调试积木生成目标积木;
运行模块13,用于响应于运行指令,将目标积木转化为目标源代码后运行;
调试信息输出模块14,用于根据目标源代码的运行结果,输出目标积木对应的调试信息;
定位模块15,用于根据调试信息对原始积木进行定位。
具体实施方式见方法实施例,此处不再赘述。
本发明另一实施例提供一种电子设备,如图6所示,电子设备10包括:
一个或多个处理器110以及存储器120,图6中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器110用于完成电子设备10的各种控件逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件控件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的代码调试方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行设备10的各种功能应用以及数据处理,即实现上述方法实施例中的代码调试方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储根据设备10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的代码调试方法,例如,执行以上描述的图1中的方法步骤S101至步骤S105。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S101至步骤S105。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明并非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器控件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使处理器执行上述方法实施例的代码调试方法。例如,执行以上描述的图1中的方法步骤S101至步骤S105。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分的方法。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地还旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供代码调试方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。
Claims (10)
1.一种代码调试方法,其特征在于,应用于图形化编程平台,所述图形化编程平台设置有编程界面,所述方法包括:
响应于调试积木添加指令,在原始积木中添加预设的调试积木,所述原始积木为所述编程界面上由至少一个积木组合成的积木组合,所述调试积木用于输出所述原始积木的执行结果;
根据所述调试积木生成目标积木;
响应于运行指令,将所述目标积木转化为目标源代码后运行;
根据所述目标源代码的运行结果,输出所述目标积木对应的调试信息;
根据所述调试信息对所述原始积木进行定位。
2.根据权利要求1所述的方法,其特征在于,所述图形化编程平台还设置有控制台显示界面;
所述在原始积木中添加预设的调试积木,包括:
在所述原始积木中添加预设的调试输出积木,所述调试输出积木用于在所述控制台显示界面输出调试信息;
和/或是,在所述原始积木中添加预设的报错调试积木,所述报错调试积木用于在所述控制台显示界面输出报错信息。
3.根据权利要求2所述的方法,其特征在于,所述若所述预设的调试积木为报错调试积木,
则根据所述调试信息对调试积木进行定位后,包括:
响应于所述报错信息的触发指令,在所述编程界面上显示所述报错信息对应的原始积木;
获取所述原始积木的背景,控制所述背景处于闪烁状态。
4.根据权利要求3所述的方法,其特征在于,所述获取所述原始积木的背景,控制所述背景处于闪烁状态后,还包括:
响应于所述原始积木的修改指令,则控制所述背景停止闪烁。
5.根据权利要求1或2所述的方法,其特征在于,所述根据所述调试信息对所述原始积木进行定位,包括:
根据调试信息获取所述原始积木的积木标识和屏幕标识;
根据所述积木标识和屏幕标识,获取所述原始积木所在的积木位置;
计算出当前编程界面显示区域相对于积木位置的偏移量;
在当前编程界面位置滚动偏移量,实现原始积木定位。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述图形化编程平台设置有控制台UI组件,所述控制台UI组件用于控制所述控制台界面输出信息;
则所述响应于运行指令,将所述目标积木转化为目标源代码后运行前,还包括:
定义一消息管理器,所述消息管理器用于对消息类型进行管理;
在所述消息管理器中将控制台UI组件订阅为一观察者;
在所述消息管理器对调试信息的类型进行定义;
根据控制台UI组件获取所述调试信息。
7.根据权利要求6所述的方法,其特征在于,所述调试积木中设置有调试函数,则根据所述目标源代码的运行结果,输出所述目标积木对应的调试信息,包括:
获取调试函数的调用结果,所述调用结果包括调试积木的积木信息和调试信息;
将所述调用结果发送至所述控制台UI组件;
通过控件台UI组件在所述控制台显示界面输出调试信息,所述调试信息的类型为自定义的打印信息。
8.一种代码调试装置,其特征在于,应用于图形化编程平台,所述图形化编程平台设置有编程界面,所述装置包括:
调试积木添加模块,用于响应于调试积木添加指令,在原始积木中添加预设的调试积木,所述原始积木为所述编程界面上由至少一个积木组合成的积木组合,所述调试积木用于输出所述原始积木的执行结果;
目标积木生成模块,用于根据所述调试积木生成目标积木;
运行模块,用于响应于运行指令,将所述目标积木转化为目标源代码后运行;
调试信息输出模块,用于根据所述目标源代码的运行结果,输出所述目标积木对应的调试信息;
定位模块,用于根据所述调试信息对所述原始积木进行定位。
9.一种电子设备,其特征在于,所述电子设备包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的代码调试方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的代码调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110762450.4A CN113626308A (zh) | 2021-07-06 | 2021-07-06 | 一种代码调试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110762450.4A CN113626308A (zh) | 2021-07-06 | 2021-07-06 | 一种代码调试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626308A true CN113626308A (zh) | 2021-11-09 |
Family
ID=78379147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110762450.4A Pending CN113626308A (zh) | 2021-07-06 | 2021-07-06 | 一种代码调试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626308A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114840198A (zh) * | 2022-04-18 | 2022-08-02 | 北京聪明核桃教育科技有限公司 | 函数执行方法、积木块功能重写方法及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102574A (zh) * | 2013-04-07 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN107590066A (zh) * | 2016-07-08 | 2018-01-16 | 广州市动景计算机科技有限公司 | 应用程序的测试方法、设备及可编程设备 |
CN109684224A (zh) * | 2018-12-29 | 2019-04-26 | 深圳点猫科技有限公司 | python代码与积木的转换过程的测试方法及装置 |
CN109710242A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | web端图形化编程的交互方法、***及电子设备 |
CN110069404A (zh) * | 2019-03-27 | 2019-07-30 | 广东高云半导体科技股份有限公司 | 代码调试方法、装置、设备及介质 |
CN111932985A (zh) * | 2020-08-25 | 2020-11-13 | 算法积木(广州)教育投资有限公司 | 一种编程语言实物化积木编程*** |
CN112256570A (zh) * | 2020-10-19 | 2021-01-22 | 网易(杭州)网络有限公司 | 远程调试方法、装置、设备及存储介质 |
CN112558953A (zh) * | 2020-12-23 | 2021-03-26 | 广州密码营地教育科技有限公司 | 基于图形化编辑器的编程实现方法、装置及设备 |
CN112860473A (zh) * | 2021-04-27 | 2021-05-28 | 武汉深之度科技有限公司 | 程序运行错误时定位源代码的方法、装置及计算设备 |
-
2021
- 2021-07-06 CN CN202110762450.4A patent/CN113626308A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102574A (zh) * | 2013-04-07 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 应用程序测试方法及装置 |
CN107590066A (zh) * | 2016-07-08 | 2018-01-16 | 广州市动景计算机科技有限公司 | 应用程序的测试方法、设备及可编程设备 |
CN109684224A (zh) * | 2018-12-29 | 2019-04-26 | 深圳点猫科技有限公司 | python代码与积木的转换过程的测试方法及装置 |
CN109710242A (zh) * | 2018-12-29 | 2019-05-03 | 深圳点猫科技有限公司 | web端图形化编程的交互方法、***及电子设备 |
CN110069404A (zh) * | 2019-03-27 | 2019-07-30 | 广东高云半导体科技股份有限公司 | 代码调试方法、装置、设备及介质 |
CN111932985A (zh) * | 2020-08-25 | 2020-11-13 | 算法积木(广州)教育投资有限公司 | 一种编程语言实物化积木编程*** |
CN112256570A (zh) * | 2020-10-19 | 2021-01-22 | 网易(杭州)网络有限公司 | 远程调试方法、装置、设备及存储介质 |
CN112558953A (zh) * | 2020-12-23 | 2021-03-26 | 广州密码营地教育科技有限公司 | 基于图形化编辑器的编程实现方法、装置及设备 |
CN112860473A (zh) * | 2021-04-27 | 2021-05-28 | 武汉深之度科技有限公司 | 程序运行错误时定位源代码的方法、装置及计算设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114840198A (zh) * | 2022-04-18 | 2022-08-02 | 北京聪明核桃教育科技有限公司 | 函数执行方法、积木块功能重写方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2915047B1 (en) | System and method for debugging domain specific languages | |
US9514026B2 (en) | Debugging analysis in running multi-user systems | |
US10033835B2 (en) | System, method, and device for remotely operating a server | |
US8797338B2 (en) | Platform agnostic screen capture tool | |
US9792198B2 (en) | Debugger with method restart capability | |
CN113778898B (zh) | 用户界面自动化测试方法、装置、电子设备及存储介质 | |
US20200341752A1 (en) | Electronic apparatus and method for controlling thereof | |
CN108664247B (zh) | 一种页面模板数据交互的方法及装置 | |
KR20220132459A (ko) | 디자인 시스템을 구비한 사용자 인터페이스 플랫폼 통합 개발 시스템 및 방법 | |
JP2019109884A (ja) | テスト自動化のための技法 | |
CN113626308A (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
US11687326B2 (en) | Method and apparatus for data interaction | |
CN114116443A (zh) | 一种页面数据传递方法、装置、***及介质 | |
CN116974537A (zh) | 基于组件的产品开发方法、装置、计算机设备及存储介质 | |
CN108614704B (zh) | 代码编译方法及装置 | |
CN112433929A (zh) | 网页调试方法、装置、计算机设备和存储介质 | |
CN116185826A (zh) | 一种测试方法、装置、设备及存储介质 | |
US11740995B2 (en) | Source quality check service | |
CN114327416A (zh) | 应用于开发分支的接口同步方法、装置及电子设备 | |
CN109656556B (zh) | 一种自适应页面的生成方法及装置 | |
CN114968751A (zh) | 一种无代码开发平台的程序调试方法和程序调试装置 | |
JP2015148925A (ja) | プログラム生成装置および方法 | |
CN104252409A (zh) | 一种获取WebApp执行过程的方法及*** | |
US8839207B2 (en) | Debugging extensible markup language | |
KR101670726B1 (ko) | 중간 언어 코드의 디버깅 정보를 이용한 코드 변환 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체 |
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 |