Skip to content

Latest commit

 

History

History
executable file
·
102 lines (60 loc) · 3.08 KB

how-to-join.md

File metadata and controls

executable file
·
102 lines (60 loc) · 3.08 KB

开发指引

[TOC]

通常的修改位置

调试器由三部分组成:

adapter

  • VScode扩展
  • 语言:typescript(javascript的超集) 约1000行
  • 核心代码: src/luaDebug.ts

debugger

  • lua脚本 / c lib
  • 语言 lua 1300行 / c 1000行
  • 核心代码: Debugger/LuaPanda.lua 以及 Debugger/debugger_lib/libpdebug.cpp

debugger 由两部分组成,分别是 lua 调试主体和 c 扩展库。使用 c 扩展的目的是弥补lua效率低的缺陷。修改时主要关注核心代码即可。

搭建开发环境调试ts代码

  1. 从Git上下载整个工程代码,解压
  2. 打开终端切换到工程根目录, 执行npm install, 安装依赖插件(内网需代理)安装完成后,工程目录下会多出一个node_modules文件夹
  3. 开新的VSCode窗口,把工程根目录拖入其中打开。按住ctrl(cmd) + shitf + B进行编译。如果编译时提示 can‘t find module 'xxx' , 说明依赖库没有安装完成,请再次执行第二步。
  4. 把VSCode切换到调试界面,点击绿色的箭头,开始运行工程中代码。会弹出一个新的VSCode窗口,标题是[扩展开发主机]。这个扩展开发机中已经预制了编译出的插件(尽管没有在插件列表中显示)。
  5. 参照快速使用在扩展开发机中进行lua调试。同时可以在原VSCode的ts代码中打断点,以观察执行流程。
  6. 修改了ts代码需要验证,要重新编译ctrl(cmd) + shitf + B之后再次运行。

利用日志追踪debugger运行状态

调试器的debugger端无法调试自身,但我们建立了日志系统,以便从日志分析执行状态。

  1. VSCode打开一个待调试工程,切换到调试界面,点击界面上的齿轮创建/查看配置。
  2. 配置文件中有一项logLevel , 它表示日志级别。默认是1,为了展示所有日志现在改为0。
  3. 正常开始lua调试流程, 点击输出(OUTPUT), 其中 LuaPanda Debugger 日志选项卡可以查看Debugger打出的日志。
  4. 如果需要在debugger中增加新日志,使用LuaPanda.printToVSCode(),但建立网络连接(vscode底部颜色条变为橙色)之后debugger日志才会打印在vscode中。
  5. 可以使用日志跟踪运行状态。但因为VSCode的异步打印机制,日志可能无法保证严格顺序。也可以参考LuaPanda Adapter ,日志信息也会在这里打印,这里的日志是严格排序的,可以对照运行流程图了解交互过程。

debug_log

编译相关库

  • mac

lua:

make macosx
sudo make install

luasocket:

//LUAV指定版本 
//LUAINC指定头文件位置
make LUAV=5.4 LUAINC=-I/usr/local/include macosx
sudo make install

libpdebug:

g++ -shared -o libpdebug.so libpdebug.cpp -I/usr/local/include -L/usr/local/lib -llua
  • win

mingw:https://nuwen.net/mingw.html

lua:

make mingw

luasocket:

修改 src/makefile 文件中的 lua 版本,mingw_base 及编译头文件,lua库的引用位置

make mingw

libpdebug:

使用 vs 编译,创建动态库项目