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编程

  • 相关阅读:
    re | frida | hook windows进程
    win32 | 透明窗口实现&画一个透明背景
    re | [SWPU2019]EasiestRe
    re | [QCTF2018]babyre
    web | [CISCN2019 总决赛 Day2 Web1]Easyweb
    sql | sqlite3的sqlite_master表探究
    windows | 获取系统变量ProgramData
    【友晶科技Terasic】Avalon-MM slave 为什么 readdata 要在第二个时钟周期才有数据?
    友晶科技 Terasic SOC FPGA的板子提供的image 使用了几个核? 是CPU0还是CPU1?
    【友晶科技Terasic】 用sopc-create-header-files工具生成 FPGA 硬件地址信息 用于与linux 程序交互 generate_hps_qsys_header.sh
  • 原文地址:https://www.cnblogs.com/softidea/p/5281068.html
Copyright © 2011-2022 走看看