openwrt上使用emmylua + emmyluadebugger + clion调试luci
lua-emmyluadebugger
A OpenWrt package of EmmyLuaDebugger
IntelliJ-EmmyLua是一个给JetBrains全家桶用的lua插件,也有VSCode版本VSCode-EmmyLua插件。
EmmyLuaDebugger是配合IntelliJ-EmmyLua使用的remote debugger, C++编写供lua调用的动态库(emmy_core.so),相比于我以前使用的mobdebug具有更高的性能。
lua-emmyluadebugger是EmmyLuaDebugger的OpenWrt包,host cmake最低版本需要3.15(使用openwrt v19.07的即可),不然要修改EmmyLuaDebugger的CMakeLists.txt。
-
使用方法(基于clion)
-
安装Emmylua插件
-
使用clion的deployment将openwrt根文件系统拉到开发机器上(openwrt的根文件系统编译好tftp,手动rsync也行)
-
clion添加一个配置:Run >> Edit Configuration >> + ,选择Emmy Debugger,然后配置参数,IDE这端作为Server所以connection选择Debugger connect IDE,配好本机ip和监听端口。
-
拷贝clion上自动生成的lua代码到lua的入口文件/www/cgi-bin/luci的第一行
-- openwrt上这句可以不要,因为库已经被安装到了/usr/lib/lua,在openwrt上这个已属于package.cpath了 -- package.cpath = package.cpath .. ';/home/a/.local/share/JetBrains/CLion2023.3/EmmyLua/debugger/emmy/linux/?.so' local dbg = require('emmy_core') dbg.tcpConnect('192.168.3.3', 9966) - 下一个断点,进入luci的web,好了,debug吧。
-
-
调试luci遇到的问题
- 下断点停得超过60s,你的网页会报Bad Gateway,这个是uhttpd的配置绝对,修改/etc/config/uhttpd,改为:uhttpd.main.script_timeout='0',即永不超时,重启uhttpd服务
- 如果htm中插入了Lua语句,修改后可能不生效,修改luci.ccache.enable='0'.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
2023-03-20 gst-launch-1.0测试
2020-03-20 do {} while(0)的妙用
2016-03-20 Jlink 软件断点和硬件断点