tarantool / tarantool/tarantool
Fully-featured Lua debugger
Open
@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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.