Skip to content

Latest commit

 

History

History
executable file
·
96 lines (74 loc) · 5.99 KB

launch-json-introduction.md

File metadata and controls

executable file
·
96 lines (74 loc) · 5.99 KB

launch.json 配置说明

[TOC]

launch.json 指的是存在于被调试项目的 .vscode/launch.json 文件,它保存调试器的运行配置,这里主要介绍各项配置项的含义,方便大家根据需要求改。

另外需要注意的是,调试器不同版本生成的 launch.json 文件可能会有所不同,如果升级后遇到问题,可以删除launch.json文件并重新生成。

下面是 3.2.0 版本的 launch.json

{
    "version": "0.2.0",
    "configurations": [
       	{
						"type": "lua",
						"request": "launch",
						"tag": "normal",
						"name": "LuaPanda",
						"cwd": "${workspaceFolder}",
						"luaFileExtension": "",
						"connectionPort": 8818,
						"stopOnEntry": true,
						"useCHook": true,
						"autoPathMode": true,
					},
					{
						"type": "lua",
						"request": "launch",
						"tag": "independent_file",
						"name": "LuaPanda-IndependentFile",
						"luaPath": "",
						"packagePath": [],
						"luaFileExtension": "",
						"connectionPort": 8820,
						"stopOnEntry": true,
						"useCHook": true,
					}
    ]
}

launch.json 包含两个模式

  • LuaPanda 自适应模式
  • LuaPanda-IndependentFile 单文件调试模式

我们定义的自适应模式是一种最频繁使用的模式。有些调试器分为 launch 以及 attach 模式,我们理解 lua 是一种脚本语言,常嵌入 c# , c++ 中被调用,通常在使用 lua 调试器时,用户会手动启动 unity / unreal,调试器无需再拉起这些被调试程序。如果有启动 vscode 调试器拉起一个二进制程序的需求,可以关注下面的 program 选项。

必要配置

项目 默认值 意义
type "lua" 插件适用于lua语言,请勿修改
request "launch" 因为我们使用自适应模式,保持launch不必修改
tag "normal" 可以选择normal(通用模式),attach(附加模式),区别是启动时是否自动拉起program配置指向的程序。不建议修改
name "LuaPanda" 展示在VScode运行按钮旁的目标名,3.2.0 后可根据需要自行修改
cwd "${workspaceFolder}" 被调试的包含lua目录,${workspaceFolder} 指 VScode 打开的目录,通常不用修改。即使要修改,也请用 "${workspaceFolder}/path" 这样的相对路径
luaFileExtension "" 重要设置: 用户设置的lua文件的后缀,如 txt , lua.txt 等
connectionPort 8818 默认端口号,如果连接无问题,可以不用修改。如果改了这里,请同步修改require("LuaPanda").start(ip, port)中的端口号
stopOnEntry true 调试器建立连接后立刻停止。接入调试器时建议设置true, 稳定使用后可根据用户需要设置成 false
useCHook true 运行时尝试加载 c 模块,这个模块作用是加速运行,加载不成功也不会影响调试效果
autoPathMode true 是否使用自动路径模式。强烈建议 true
program "" 可以填入一个二进制文件路径,启动调试器会自动运行这个文件

扩展功能的可选配置

项目 默认值 意义
isNeedB64EncodeStr true 对传输的字符串使用 base64 加密,避免一些异常字符干扰协议解析
pathCaseSensitivity false 路径大小写敏感。默认 false 可兼容 getInfo获取的路径大小写,无需修改
updateTips true 当检查到项目中的 lua 文件比较旧时,提示用户升级
logLevel 1 日志等级,开发调试器时可能会使用0级,大量日志会降低运行效率。正常使用请勿修改
distinguishSameNameFile false 调试器默认不做同名文件区分 , 请不要在同名文件中打断点(此时仅依靠文件名进行文件区分)。如需要调试器区分同名文件,可尝试设置为 true,此时会执行较为严格的路径模式。
truncatedOPath "" 路径裁剪,通常无需修改。配合 distinguishSameNameFile: true 模式使用。裁减掉 getinfo 的一部分路径,用剩余的路径进行断点匹配
VSCodeAsClient false 反转 VScode 和 lua 进程的 C/S
connectionIP "127.0.0.1" 配合 VSCodeAsClient: true 模式使用,要连接的 lua 进程所在ip
  • LuaPanda-IndependentFile 模式的配置

LuaPanda-IndependentFile 我们称之为"独立文件模式" , 它的作用是打开一个新的终端,并 lua 命令运行当前 VSCode 活动窗口中的 lua 代码,并连接调试器,对其进行调试。

这个模式的目的是方便进行 lua 开发时,测试一些独立的文件 / 函数运行状况。

使用时请确保系统中安装了 lua 命令行二进制文件 以及 luasocket。测试方法是打开一个终端,运行 lua 看是否报错,之后尝试 require("socket.core") 不报错即可使用。

单文件模式有一些独立的配置:

配置项 默认值 建议
luaPath "" Lua 可执行文件的路径,如果已经加入系统path路径,可以不用修改
packagePath [] 可以加入用户自己的packagepath路径,比如["./?.lua", "../?.lua" ]