laurentlb / stardbg

A standalone debugger for Starlark

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Experimental debugger for Starlark

This is a standalone debugger for Starlark ,with a web-based UI. In theory, it can be used to debug any Starlark code that uses the same debugging protocol. At the moment, the only known compatible server is Bazel.

This is the first draft, there are lots of rough edges and known limitations.

Screenshot

Example of use

  1. Run your normal Bazel command with --experimental_skylark_debug, e.g.
bazel build --experimental_skylark_debug //my:target

The command will hang until a debugger is attached.

  1. In a different shell, run the debugger from the stardbg repository. Choose where you want your initial breakpoints using an absolute path and a line number, e.g.
bazel run :stardbg -- /home/myself/dir/my/BUILD.bazel:3

Of course, the file should be inside the repository you are debugging (a file used by //my:target).

  1. Open a browser at http://localhost:8080/

Caveats

  • A breakpoint will be effective only when the corresponding line is evaluated. Since Bazel aggressively caches the results, you may want to do a spurious change to a file to force a re-evaluation.

  • At the moment, you need to kill and rerun the debugger each time you restart a debugging session. Also, reload the web page.

  • Supported features: display of local variables (in each level of the stack trace), support for threads (you can choose which thread to debug, switch thread, etc.).

  • Missing features: conditional breakpoints, evaluation of custom expressions. The visualization of values is very limited.

Alternative

About

A standalone debugger for Starlark

License:Apache License 2.0


Languages

Language:JavaScript 38.9%Language:HTML 22.2%Language:Go 19.2%Language:Starlark 14.0%Language:CSS 5.6%