新的介绍内容:
Lua Debugger:在Visual Studio Code中调试Lua程序的终极指南
Lua Debugger扩展为Lua开发者提供了一个强大的工具,使您能够在Visual Studio Code中高效调试Lua程序。本文将为您详细介绍如何使用Lua Debugger,包括使用要求、配置步骤、调试连接方法以及远程调试技巧。
使用要求:
配置步骤:
要使用Lua Debugger调试Lua程序,您需要将vscode-debuggee.lua文件放入要调试的程序中。如果您之前使用过mobdebug,对此应该已经很熟悉。
调试连接方法:
local json = require 'dkjson'
local debuggee = require 'vscode-debuggee'
local startResult, breakerType = debuggee.start(json)
print('debuggee start ->', startResult, breakerType)
错误发生时进入调试器的设置:
在想要处理错误的位置粘贴以下代码:
xpcall(
function()
-- 实际运行的代码
local a = 1 nil
end,
function(e)
if debuggee.enterDebugLoop(1, e) then
-- ok
else
-- 如果调试器未连接,则进入此处。
print(e)
print(debug.traceback())
end
end)
在执行过程中启用调试命令处理:
为了使Lua程序在运行时能够响应调试器的命令,如设置暂停或断点,请在适当的时间间隔调用以下代码。如果您的项目是游戏客户端,可以在每一帧调用它。
debuggee.poll()
Gideros支持:
您可以直接从Visual Studio Code运行Gideros Player。请参考调试设置中的'launch-gideros'部分。
远程调试:
如果您将调试设置设置为等待并开始调试,Visual Studio Code将等待调试目标而不执行一个。这在您想查看调试目标在控制台上留下的字符串,或调试器和调试目标必须在不同机器上运行时非常有用。
OP_HALT补丁:
基本上,vscode-debuggee.lua会降低Lua程序的运行速度,因为它使用debug.sethook实现断点机制。通过对Lua VM应用一个简单的补丁,可以克服这种性能下降。
下载:
致谢:
vscode-debuggee.lua参考:
debuggee.start(jsonLib, config)
与调试器连接。jsonLib是一个包含.encode和.decode函数的JSON库。Config.onError是在vscode-debuggee模块中发生错误时接收的回调。Config.connectTimeout、config.controllerHost和config.controllerPort是远程调试的设置。如果config.redirectPrint为true,则拦截print调用并在Visual Studio Code输出窗口中显示。如果您希望Gideros在断点之前调用print的结果,请使用此项。
debuggee.start返回两个值。如果正常连接到调试器,第一个返回值为true,否则为false。如果在当前Lua VM中应用了OP_HALT补丁,第二个返回值为'halt',否则为'pure'。
debuggee.poll()
处理排队的调试命令并立即返回。
debuggee.enterDebugLoop(depth[, what])
停止运行Lua程序并从当前位置开始调试。depth指定堆栈的相对深度,以指示调试器当前运行的位置。0表示调用debuggee.enterDebugLoop的地方,1表示浅一层。what是您在开始调试时想要传递给Visual Studio Code的消息。
debuggee.print(category, ...)
在vscode调试控制台上打印文本。category使打印文本着色,您可以选择log、warning或error。
本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:study_golang@163.com