Skip to content

satoren/LRDB

Repository files navigation

Lua Remote DeBugger

Licensed under Boost Software License

test Coverage Status

Introduction

LRDB is Debugger for Lua programing language.

Currentry debug client is Visual Studio Code extension only.

Command line interface debugger is not implemented.

Features

  • Breakpoints with conditional and hit counts.
  • Step over, step in, step out
  • Display Local,Upvalue,Global values
  • Watches,Eval on Debug Console
  • Remote debugging over TCP network

Requirements

  • Lua 5.1 or later
  • C++11 compiler

Embedded to your host program

LRDB is header only library

include path

  • LRDB/include
  • LRDB/third_party/asio/asio/include or boost.asio with -DLRDB_USE_BOOST_ASIO
  • LRDB/third_party/picojson

code

#include "lrdb/server.hpp"
...

  int listen_port = 21110;//listen tcp port for debugger interface

  lua_State* L = luaL_newstate();//create lua state

  lrdb::server debug_server(listen_port);
  debug_server.reset(L);//assign debug server to lua state(Required before script load)

  bool ret = luaL_dofile(L, luafilepath);

  debug_server.reset(); //unassign debug server (Required before lua_close )
  lua_close(L);

Lua module

If you using standalone Lua. you can use lua c mocule.

Build and Install with LuaRocks

luarocks install lrdb

Build module your self

mkdir build
cd build
cmake ../ -DLUA=lua-5.3
cmake --build --target lrdb_server

Generated lrdb_server.so or lrdb_server.dll

Use module

lrdb = require("lrdb_server")
lrdb.activate(21110) --21110 is using port number. waiting for connection by debug client.

--debuggee lua code
dofile("luascript.lua");

lrdb.deactivate() --deactivate debug server if you want.

Visual Studio Code Extension

https://github.com/satoren/vscode-lrdb