lua 远程调试 【zeroBrane 使用mobdebug】

最近基于业务需求,学习了如何使用zeroBrane这个IDE实现C/S 模式下的 lua远程调试,废话不多,上效果图:

lua 远程调试 【zeroBrane 使用mobdebug】_第1张图片

----------------------------------------------------------------------华丽分割线---------------------------------------------------------

lua 远程调试 【zeroBrane 使用mobdebug】_第2张图片


操作流程: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.*.*);

你可能感兴趣的:(lua 远程调试 【zeroBrane 使用mobdebug】)