tarantool / tarantool/tarantool

Fully-featured Lua debugger

Open
#7,748 0 comments 0 reactions 2 assignees View on GitHub

@Buristan is already working on this.

Since Oct 2, 2022.

app debugger devtools feature in design
Dominant language
Lua
Stars
3.7k
Forks
419
Avg merge
1d 23h
Merged PRs (30d)
88

Description

Remote debugger

Now, having local debugger support (#7456), we want to enable fully featured remote debugger scenario:

  • debugger commands handler should be refactored and extracted to process network commands, not only local interactive commands (i.e. like remdebug). This will enable "attach" command, in addition to the current "launch" command;
  • attaching to coroutine, and fiber should be handled carefully to reenable line hook at the start of coroutine/fiber;
  • reactivation of line hook inside of each fiber might lead to massive performance impact, potentially slowing down whole system. To resolve this problem reimplement HALT bytecode patch for LuaJIT VM;
  • once we have "launch" scenario efficiently enabled on the server part (steps above), we should modify debugger plugins with that functionality (vscode localdebugger, and JetBrains Tarantool-EmmyLua);

Integrated debugger in console

At the moment local debugger activated via special wrapper, we should integrated switch to debugger shell to Tarantool console shell, via some set of command (i.e. debug, breakpoint, watch, etc);

  • invoke debugger from Tarantool console. Integrate commands;
  • Reuse yaml serialization support from console for display of expressions in the debugger mode. Refactor to reuse native Tarantool facilities instead of debugger itself;

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.