CN102981957B - 虚断点脚本调试方法 - Google Patents
虚断点脚本调试方法 Download PDFInfo
- Publication number
- CN102981957B CN102981957B CN201210507012.4A CN201210507012A CN102981957B CN 102981957 B CN102981957 B CN 102981957B CN 201210507012 A CN201210507012 A CN 201210507012A CN 102981957 B CN102981957 B CN 102981957B
- Authority
- CN
- China
- Prior art keywords
- script
- debugging
- breakpoint
- server
- client
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种虚断点脚本调试方法,首先在服务器上开放一个端口,且自动加载一动态链接库DLL;接着在客户端的脚本编辑器上增加一插件,通过该插件设置属性,然后将设置好的属性传递至所述动态链接库DLL;当脚本调试客户端发出脚本调试请求;动态链接库DLL根据请求调用LUA内置的调试器,执行请求,当执行到断点时,根据设置的属性判断是否立即暂停,若是,服务器端暂停执行脚本,若否,执行虚断点调试模式。本发明通过给脚本编辑器和服务器分别增加插件和动态链接库DLL,开发人员不用老盯着脚本调试过程回传的数据,执行过程不用一次次恢复断点,节约时间,同时,还可以实现协同工作,节约成本,是一种快速有效的脚本调试方法。
Description
【技术领域】
本发明涉及一种脚本调试方法,特别涉及一种虚断点脚本调试方法。
【背景技术】
在游戏服务器中,LUA脚本被普遍使用,用以支持更多的关卡任务设计,提高游戏可玩性。在调试LUA脚本时,都需要设置多个断点,开发人员必须逐个跟踪断点,如果一个循环进入100次,要查看这100次的值,就必须在断点操作100次恢复断点,否则调试过程一直处于暂停状态,非常浪费时间,另一方面还存在协同工作困难的问题,即同一时间同一个程序只能单人调试,当多人同时使用同一个服务器时,每个人编辑完脚本,上传到服务器后,必须调试。调试时如果某个人设置了断点,其他人就必须等该断点被取消后才能工作,否则就只能一直处于等待状态,浪费大量的时间。
【发明内容】
本发明要解决的技术问题,在于提供一种虚断点调试方法,其解决了无法协同工作问题以及断点必须人员在场逐个跟踪,浪费大量的时间。
本发明是这样实现的:
一种虚断点脚本调试方法,包括如下步骤:
步骤1、服务器上开放一个用于监听客户端请求、远程调试脚本的端口,且在服务器启动时自动加载一动态链接库DLL,所述动态链接库DLL通过所述端口监听客户端的网络请求;将待调试的脚本上传至服务器;
步骤2、在客户端的脚本编辑器上增加一插件,通过该插件设置属性,所述属性包括增加的断点、取消的断点,是否单步执行以及设置脚本执行到每个断点后是否立即暂停,然后将设置好的属性传递至所述动态链接库DLL;
步骤3、要进行脚本调试的客户端发出脚本调试请求;
步骤4、服务器端的动态链接库DLL通过所述端口收到来自脚本调试客户端的请求,动态链接库DLL根据请求调用LUA内置的调试器,执行请求,当执行到断点时,根据设置的属性判断是否立即暂停,若是,服务器端暂停执行脚本,则服务器上的程序也随之被暂停,服务器把数据回传至脚本调试客户端,脚本调试客户端接收并显示该数据,当脚本调试客户端请求继续执行时,服务器端才开始执行脚本;若否,执行虚断点调试模式,具体为:服务器端执行到断点,脚本执行不暂停,仅把数据回传至脚本调试客户端,脚本调试客户端记录该数据,由于脚本执行不暂停,服务器上的程序仍正常运行,所以能实现多人调试脚本,且无需人员看守脚本调试过程,在脚本调试客户端界面上随时能查看到每次执行到虚断点时的数据,同时也不会干扰到使用同一个服务器调试脚本的其他人,实现多人分别调试自己的脚本。
进一步地,所述脚本编辑器为Notepad++文本脚本编辑器。
进一步地,所述步骤4中的数据具体为:变量、参数、函数名以及调用栈。
本发明具有如下优点:
本发明的虚断点调试方法,通过给脚本编辑器和服务器分别增加插件和动态链接库DLL,开发人员不用老盯着脚本调试过程回传的数据,执行过程不用一次次恢复断点,节约时间,减少不必要消耗的精力;同时,还可以实现协同工作,一个服务器多个人同时调试,通过客户端查看变量,节约成本,是一种快速有效的脚本调试方法。
【具体实施方式】
一种虚断点脚本调试方法,包括如下步骤:
步骤1、服务器上开放一个用于监听客户端请求、远程调试脚本的端口,且在服务器启动时自动加载一动态链接库DLL,所述动态链接库DLL通过所述端口监听客户端的网络请求;将待调试的脚本上传至服务器;
步骤2、在客户端的脚本编辑器上增加一插件,通过该插件设置属性,所述属性包括增加的断点、取消的断点,是否单步执行以及设置脚本执行到每个断点后是否立即暂停,然后将设置好的属性传递至所述动态链接库DLL;所述脚本编辑器为Notepad++文本脚本编辑器;
步骤3、要进行脚本调试的客户端发出脚本调试请求;
步骤4、服务器端的动态链接库DLL通过所述端口收到来自脚本调试客户端的请求,动态链接库DLL根据请求调用LUA内置的调试器,执行请求,当执行到断点时,根据设置的属性判断是否立即暂停,若是,服务器端暂停执行脚本,则服务器上的程序也随之被暂停,服务器把数据回传至脚本调试客户端,脚本调试客户端记录该数据,当脚本调试客户端请求继续执行时,服务器端才开始执行脚本;若否,执行虚断点调试模式,具体为:服务器端执行到断点,脚本执行不暂停,仅把数据回传至脚本调试客户端,脚本调试客户端接收并显示该数据,所述数据包括变量、参数、函数名以及调用栈。由于脚本执行不暂停,服务器上的程序仍正常运行,所以能实现多人调试脚本,且无需人员看守脚本调试过程,在脚本调试客户端界面上随时能查看到每次执行到虚断点时的数据,同时也不会干扰到使用同一个服务器调试脚本的其他人,实现多人分别调试自己的脚本。
本发明的虚断点调试方法,通过给脚本编辑器和服务器分别增加插件和动态链接库DLL,开发人员不用老盯着脚本调试过程回传的数据,执行过程不用一次次恢复断点,节约时间,减少不必要消耗的精力;同时,还可以实现协同工作,一个服务器多个人同时调试,通过客户端查看变量,节约成本,是一种快速有效的脚本调试方法。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (3)
1.一种虚断点脚本调试方法,其特征在于:包括如下步骤:
步骤1、服务器上开放一个用于监听客户端请求、远程调试脚本的端口,且在服务器启动时自动加载一动态链接库DLL,所述动态链接库DLL通过所述端口监听客户端的网络请求;将待调试的脚本上传至服务器;
步骤2、在客户端的脚本编辑器上增加一插件,通过该插件设置属性,所述属性包括增加的断点、取消的断点,是否单步执行以及设置脚本执行到每个断点后是否立即暂停,然后将设置好的属性传递至所述动态链接库DLL;
步骤3、要进行脚本调试的客户端发出脚本调试请求;
步骤4、所述动态链接库DLL通过所述端口收到来自脚本调试客户端的请求,动态链接库DLL根据请求调用LUA内置的调试器,执行请求,当执行到断点时,根据设置的属性判断是否立即暂停,若是,服务器端暂停执行脚本,则服务器上的程序也随之被暂停,服务器把数据回传至脚本调试客户端,脚本调试客户端记录该数据,当脚本调试客户端请求继续执行时,服务器端才开始执行脚本;若否,执行虚断点调试模式,具体为:服务器端执行到断点,脚本执行不暂停,仅把数据回传至脚本调试客户端,脚本调试客户端接收并显示该数据,由于脚本执行不暂停,服务器上的程序仍正常运行,所以能实现多人调试脚本,且无需人员看守脚本调试过程,在脚本调试客户端界面上随时能查看到每次执行到虚断点时的数据,同时也不会干扰到使用同一个服务器调试脚本的其他人,实现多人分别调试自己的脚本。
2.根据权利要求1所述的虚断点脚本调试方法,其特征在于:所述脚本编辑器为Notepad++文本脚本编辑器。
3.根据权利要求1所述的虚断点脚本调试方法,其特征在于:所述步骤4中的数据具体为:变量、参数、函数名以及调用栈。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210507012.4A CN102981957B (zh) | 2012-11-30 | 2012-11-30 | 虚断点脚本调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210507012.4A CN102981957B (zh) | 2012-11-30 | 2012-11-30 | 虚断点脚本调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102981957A CN102981957A (zh) | 2013-03-20 |
CN102981957B true CN102981957B (zh) | 2015-03-18 |
Family
ID=47856011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210507012.4A Active CN102981957B (zh) | 2012-11-30 | 2012-11-30 | 虚断点脚本调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102981957B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461889A (zh) * | 2014-12-12 | 2015-03-25 | 华为技术有限公司 | 一种语音能力脚本调试方法及装置 |
CN105260316A (zh) * | 2015-11-16 | 2016-01-20 | 浪潮软件股份有限公司 | 一种软件系统动态测试的方法、装置及系统 |
CN106528405A (zh) * | 2016-10-09 | 2017-03-22 | 深圳震有科技股份有限公司 | 基于OSGi构建软件运行中进行调试实现方法及系统 |
CN107918583B (zh) * | 2016-10-09 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种脚本动态调试方法、装置及终端 |
CN107220177B (zh) * | 2017-05-25 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种动态语言远程调试方法及系统 |
CN107678974A (zh) * | 2017-11-02 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种调试Python脚本的方法及装置 |
CN109783342B (zh) | 2017-11-10 | 2022-03-29 | 华为技术有限公司 | 脚本调试方法、设备及计算机存储介质 |
CN108628739A (zh) * | 2018-03-19 | 2018-10-09 | 北京奇艺世纪科技有限公司 | 一种对Lua脚本进行调试的方法、客户端、服务器及调试器 |
CN108595327B (zh) * | 2018-04-16 | 2023-06-06 | 深圳市腾讯网络信息技术有限公司 | 应用执行脚本的方法、应用测试方法、装置和计算机设备 |
CN110597502B (zh) * | 2019-08-20 | 2023-05-23 | 北京东方国信科技股份有限公司 | 一种基于java实现PL/SQL语言的单步调试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834940A (zh) * | 2005-12-22 | 2006-09-20 | 苏州超锐微电子有限公司 | 一种通过在指令中嵌入计数器实现断点调试功能的方法 |
CN101504626A (zh) * | 2009-03-06 | 2009-08-12 | 中兴通讯股份有限公司 | 一种调试控制实现方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8572578B2 (en) * | 2010-06-15 | 2013-10-29 | Microsoft Corporation | Script debugging |
-
2012
- 2012-11-30 CN CN201210507012.4A patent/CN102981957B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1834940A (zh) * | 2005-12-22 | 2006-09-20 | 苏州超锐微电子有限公司 | 一种通过在指令中嵌入计数器实现断点调试功能的方法 |
CN101504626A (zh) * | 2009-03-06 | 2009-08-12 | 中兴通讯股份有限公司 | 一种调试控制实现方法及系统 |
Non-Patent Citations (2)
Title |
---|
Linux动态链接机制研究及应用;张和君、张跃;《计算机工程》;20061130;第32卷(第22期);第64-66页 * |
基于Lua的虚拟仪器控制框架设计;邓楠乔;《CNKI优秀硕士学位论文全文库》;20101231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102981957A (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102981957B (zh) | 虚断点脚本调试方法 | |
US10180899B2 (en) | Device for automatically generating test cases for embedded software using symbolic and concrete execution | |
US8572578B2 (en) | Script debugging | |
US9064049B2 (en) | Remote debugging of server side code without blocking or high-level privileges | |
Pathak et al. | What is keeping my phone awake? Characterizing and detecting no-sleep energy bugs in smartphone apps | |
CN102081679B (zh) | 一种计算机性能数据的采集方法及采集装置 | |
US8370816B2 (en) | Device, method and computer program product for evaluating a debugger script | |
KR20180054773A (ko) | 디버깅 방법, 멀티 코어 프로세서, 및 디버깅 장치 | |
US9038048B2 (en) | Methods, systems, and media for protecting applications from races | |
CN110046479B (zh) | 一种基于安卓操作系统的链接库文件反调试方法及装置 | |
CN106201745A (zh) | 应用程序的远程调试方法、远程调试系统和终端 | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
US20130007716A1 (en) | Collaborative Software Debugging In A Distributed System With Private Debug Sessions | |
US9009673B2 (en) | Collaborative software debugging in a distributed system with collaborative step over operation | |
CN103514072A (zh) | 一种用于可视化编程的图形化业务的调试方法及装置 | |
CN105630664B (zh) | 一种反向调试方法、装置及调试器 | |
CN110188028B (zh) | 一种计算机系统的测试方法 | |
CN110704315A (zh) | 一种嵌入式软件测试的故障注入装置 | |
Jacques-Silva et al. | Towards autonomic fault recovery in system-s | |
KR20110095050A (ko) | 공유 라이브러리 디버깅 장치 | |
CN102023887B (zh) | 一种计算机系统的电源管理方法及计算机系统 | |
CN106557693A (zh) | 一种恶意Hook行为检测方法及系统 | |
US9304844B2 (en) | System and method for preserving critical debug data in a portable computing device | |
Dovgalyuk et al. | Don't panic: reverse debugging of kernel drivers | |
CN112416790B (zh) | 一种嵌入式软件离线重放调试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |