RemDebug小巧的Lua远端调试器 告诉你coroutine很强大

RemDebug is a remote debugger for Lua 5.0 and 5.1. It lets you control the execution of another Lua program remotely, setting breakpoints and inspecting the current state of the program. RemDebug can also debug CGILua scripts.

看他的源码只有2个东西:controller.lua 和 remdebug/engine.lua

controller(233行)接受用户输入的指令 把指令传到远程的debugger去 同时显示结果, 它是一个socket server.

engine(283行)是调试器的核心 解释controller的指令 通过sethook来进行调试动作。

一个完整的调试器 500行左右, 其中的engine完美演示了coroutine的强大,佩服。

不过1.0有个小bug,就是使用了getn,setn来进行表格插入 有问题,改成5.1的语法就OK了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua 中,协程(coroutine)是一种特殊的线程,可以在执行过程中挂起和恢复。协程可以用于实现协作式多任务,允许程序在某个点上暂停,并在稍后的时间点继续执行。下面是一些常见的 Lua 协程使用方法: 1. 创建协程:使用 `coroutine.create` 函数来创建一个新的协程。 ```lua local co = coroutine.create(function() -- 协程的执行逻辑 end) ``` 2. 启动协程:使用 `coroutine.resume` 函数来启动或恢复一个协程的执行。 ```lua local success, result = coroutine.resume(co) ``` 3. 挂起协程:使用 `coroutine.yield` 函数来手动挂起一个协程的执行,并返回结果。 ```lua local function foo() print("Hello") coroutine.yield() print("World") end local co = coroutine.create(foo) coroutine.resume(co) -- 输出 "Hello" coroutine.resume(co) -- 输出 "World" ``` 4. 检查协程状态:使用 `coroutine.status` 函数来检查协程的状态。 ```lua local status = coroutine.status(co) ``` 常见的状态有: - "suspended":协程处于挂起状态,即已经创建但尚未执行或已经执行但被挂起。 - "running":当前正在执行的协程。 - "dead":协程已经执行完毕或发生错误导致终止。 以上是一些基本的协程使用方法,还可以使用 `coroutine.wrap` 函数将一个函数转换为协程。在实际应用中,协程可以用于实现状态机、异步操作、迭代器等功能。根据具体需求,可以灵活运用协程的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值