lua 远程调试 【zeroBrane 使用mobdebug】(good转)
最近基于业务需求,学习了如何使用zeroBrane这个IDE实现C/S 模式下的 lua远程调试,废话不多,上效果图:
----------------------------------------------------------------------华丽分割线---------------------------------------------------------
操作流程:zeroBrane project -> start debugger server
启动 socket server 所在文件,启动监听。
在另一个目录,启动 socket client 所在文件,IDE zeroBrane 会立即唤醒,见上图2,被动打开 server所在目录,同名文件(即使文件内容不同),并默认停在第11行。【因为客户端的有效断点最小就在第11行】
试着step over 一下,你发现stack栏出现客户端调试信息。对的,这就是远程调试。
----------------------------------------------------------------------华丽分割线---------------------------------------------------------
实现流程:
1.在任意盘新建一个文件夹,里面放入client lua 文件,此处是test.lua.
问题:我此处还拖入了mobdebug文件,mobdebug文件里,require了socket,显示找不到。所以我在test文件里修改了package path,改了之后其实mobdebug
文件可有可无了,新改的package path里包涵了mobdebug路径。
2.同上再新建,放入server 文件。此处有 test3.lua 启动服务器 ,test.lua 供 客户端 test.lua 同步唤醒。
----------------------------------------------------------------------华丽分割线---------------------------------------------------------
3份文件代码:(虽然不复杂,但谁让我敬业)
1. 客户端 的 test:
- local p = "C:/Program Files (x86)/Lua/5.1/";
- package.cpath = package.cpath..string.format(";?.dll;%sclibs/?.dll;%s;",p,p);
- package.path = package.path..string.format(";?.lua;%slua?.lua;%s;",p,p);
- require('mobdebug').start('127.0.0.1')
- local tmp_str = "Debug"
- print("1")
- print("2")
- print("3")
- print("4")
- print("Lua Lapis")
2. 服务端 test3:
- local mobdebug = require "mobdebug"
- local socket = require "socket"
- local server = socket.bind('*', 8172)
- local realprint = print
- -- uncomment the next line if you ONLY want to see debug output
- -- _G.print = function () end
- print("Lua Remote Debugger")
- print("Run the program you wish to debug")
- local client = server:accept()
3.服务端 test:
- print("1")
- print("2")
- print("3")
- print("4")
- print("Lua Lapis")
- print("1")
- print("2")
- print("3")
- print("4")
- print("Lua Lapis")
- print("1")
- print("2")
- print("3")
- print("4")
- print("Lua Lapis")
- print("1")
- print("2")
- print("3")
- print("4")
- print("Lua Lapis")
- print("1")
- print("2")
2016年2月25日17:22:36 补充:
1.测试手机设备lua代码:
如果传递过来的路径类似于:apphome:core/app.lua 这就需要转换成 pc认识的路径;(如图:记住位置,因为我加了点注释,所以是第692行附近)
2.这个模式是c/s模式,一个s多个c,再你每个要调的lua文件之前都要加上 require("mobdebug").start("192.168.*.*);
http://blog.csdn.net/lpcz2010/article/details/50722048
(1)lua/groovy的语法差异
(2)编辑lua脚本常用的IDE介绍
(3)lua脚本的特色。以及Lua的OO编程
lua 远程调试 【zeroBrane 使用mobdebug】(good转)的更多相关文章
- 如何使用ZEROBRANE STUDIO远程调试COCOS2D-X的LUA脚本(转)
http://www.cocos2d-x.org/docs/manual/framework/native/v2/lua/lua-remote-debug-via-zerobrane/zh ZeroB ...
- ZeroBraneStudio之支持远程调试
打开ZBS后,如果需要远程调试得先开启调试服务器:Project->Start Debugger Server 打开之后就可以编辑文件进行测试了.示例代码如下: local ZBS = 'D:/ ...
- Redis Lua脚本调试
从版本3.2开始,Redis包含一个完整的Lua调试器,可以用来使编写复杂Redis脚本的任务更加简单. 由于Redis 3.2仍处于测试阶段,请unstable从Github 下载Redis 的分支 ...
- 在cocos code ide的基础上构建自己的lua开发调试环境
对于一种语言,其所谓开发调试环境, 大体有以下两方面的内容: 1.开发, 即代码编写, 主要是代码提示.补齐, 更高级一点的如变量名颜色等. 2.调试, 主要是运行状态下断点.查看变量.堆栈等. 现在 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- 使用Eclipse进行远程调试
转自:http://blog.csdn.net/sunyujia/article/details/2614614 今天决定做件有意义的事,写篇图文并茂的blog,为什么要图文并茂?因为很多事可能用语言 ...
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)
http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...
随机推荐
- 框架学习之道:PE框架简介
1.PE框架开发新功能所需的部分 2.PE框架工作流程(重要) 首先根据<transcation>中的id号,找到模板(template),然后再根据模板找到责任链(chain),一旦确认 ...
- [置顶] 深圳华为BSS公共部件 (BI 商业智能 Java Javascript)
深圳华为BSS公共部件 部门招聘 招聘面试地点:大连,西安 工作地点:深圳 时间:2013年9月7日 联系方式:dawuliang@gmail.com 18675538182 有兴趣的同学,可以直接电 ...
- BT5 firefox Flash插件问题
今天在BT下安装了Nessus,好不容易安装好了,注册成功,本以为大功告成,但是在最后关头,却出现一个“未安装flash插件”错误,在bT下尝试着安装flahs插件,蛋碎一地,,,没能解决. 我的BT ...
- Direct UI
在界面开发中,眼下DirectUI是个热门的技术名称,由于众多的知名公司都是用DirectUI方式作出了非常炫丽的界面.而对于大多数熟悉Win32控件,熟悉MFC开发的开发者来说,我们应该做何选择? ...
- JavaScript 中的继承(读书笔记思维导图)
继承是 OO 语言中的一个最为人津津乐道的概念.许多 OO 语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.由于函数没有签名,在 ECMAScript ...
- SimpleWiFi模块评估板
SimpleWiFi评估套件,发货清单: 1.评估版一块. 2.专用WiFi天线一根. 3.配套电源一个. 单模块 是60元,链接如下: http://item.taobao.com/i ...
- CodeForces 484B Maximum Value
意甲冠军: a序列n(2*10^5)数字 问道a[i]>=a[j]如果是 a[i]%a[j]最大值是多少 思路: 感觉是一道挺乱来的题-- 我们能够将ans表示为a[i]-k*a[j] 这 ...
- 不可不知的DIP、IoC、DI以及IoC容器
面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.当中.OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念. 本文首先用实例阐述四个概 ...
- Codeforces Round #248 (Div. 1)——Ryouko's Memory Note
题目连接 题意: 给n和m,一行m个1<=x<=n的数.记c=.如今仅仅能选择一个数x变成y,序列中全部等于x的值都变成y,求最小的c 分析: 对于一个数x,把与他相邻的所有的非x的数所有 ...
- gem5 设定checkpiont以及从checkpoint开始运行
同spec2006中间bzip2一个例子,如何设置checkpoint .以及从checkpoint继续以启动运行.这样做的目的是为了,采纳automic运行N指令,然后detailed运行M指令. ...