zoukankan      html  css  js  c++  java
  • 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:

    [javascript] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. local p = "C:/Program Files (x86)/Lua/5.1/";  
    2. package.cpath = package.cpath..string.format(";?.dll;%sclibs/?.dll;%s;",p,p);  
    3. package.path = package.path..string.format(";?.lua;%slua?.lua;%s;",p,p);  
    4. require('mobdebug').start('127.0.0.1')  
    5.   
    6.   
    7.   
    8.   
    9.   
    10. local tmp_str = "Debug"  
    11. print("1")  
    12. print("2")  
    13. print("3")  
    14. print("4")  
    15. print("Lua Lapis")  

    2. 服务端 test3:

    [javascript] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. local mobdebug = require "mobdebug"  
    2. local socket = require "socket"  
    3. local server = socket.bind('*', 8172)  
    4.   
    5. local realprint = print  
    6. -- uncomment the next line if you ONLY want to see debug output  
    7. -- _G.print = function () end  
    8.   
    9. print("Lua Remote Debugger")  
    10. print("Run the program you wish to debug")  
    11.   
    12. local client = server:accept()  


    3.服务端 test:

    [javascript] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. print("1")  
    2. print("2")  
    3. print("3")  
    4. print("4")  
    5. print("Lua Lapis")  
    6. print("1")  
    7. print("2")  
    8. print("3")  
    9. print("4")  
    10. print("Lua Lapis")  
    11. print("1")  
    12. print("2")  
    13. print("3")  
    14. print("4")  
    15. print("Lua Lapis")  
    16. print("1")  
    17. print("2")  
    18. print("3")  
    19. print("4")  
    20. print("Lua Lapis")  
    21. print("1")  
    22. 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编程

  • 相关阅读:
    微信小程序倒计时,小程序60秒倒计时,小程序倒计时防止重复点击
    微信小程序嵌套h5页面,h5页面返回小程序,小程序和h5的页面和交互方法,h5点击分享小程序页面
    LeetCode—— 括号生成
    LeetCode—— 合并两个有序链表
    LeetCode—— 有效的括号
    LeetCode—— 删除链表的倒数第N个节点
    LeetCode—— 四数之和
    LeetCode—— 电话号码的字母组合
    LeetCode—— 最接近的三数之和
    ***LeetCode—— 三数之和
  • 原文地址:https://www.cnblogs.com/softidea/p/5281068.html
Copyright © 2011-2022 走看看