/stacky

Stacky ☆ BEAM stack trace in Gleam: a stack trace of stack frames with module name, function name, arity, file name and line numb

Primary LanguageGleamMozilla Public License 2.0MPL-2.0

Stacky ☆ BEAM stack trace in Gleam

Erlang-compatible Documentation Available on Hex CI Discord chat

A stack trace of stack frames with module name, function name, arity, file name and line number!

Installation

gleam add stacky

Usage

let stacktrace = stacky.trace()

io.print("\n")

io.println("Trace to string:")

stacktrace |> stacky.print_trace

io.print("\n")

io.println("Frame with context:")

stackframe |> stacky.print_frame_with(context: #("my_context"))

stdout example:

Trace to string:
# 06	main() of src/stacky/internal/examples/example_readme.gleam
    	in /SOME_PATH/stacky/build/dev/erlang/stacky/_gleam_artefacts/stacky@internal@examples@example_readme.erl:8
# 05	stacky@@main:run/1
    	in /SOME_PATH/stacky/build/dev/erlang/stacky/_gleam_artefacts/stacky@@main.erl:11
# 04	erl_eval:do_apply/7
    	in erl_eval.erl:746
# 03	init:start_it/1
# 02	init:start_em/1
# 01	init:do_boot/3

Frame with context:
# 06	main() of src/stacky/internal/examples/example_readme.gleam
    	in /Users/leo/local-dev/gleam/stacky/build/dev/erlang/stacky/_gleam_artefacts/stacky@internal@examples@example_readme.erl:8
    	context: #("my_context")

Demos

gleam run --module stacky/internal/examples/example_1
gleam run --module stacky/internal/examples/example_2
gleam run --module stacky/internal/examples/example_3

Further documentation can be found at https://hexdocs.pm/stacky.