#erlang #dump #cli #ratatui

app crashdump_parser_cli

A CLI tool to parse Erlang crashdumps

2 unstable releases

new 0.3.0 Mar 31, 2025
0.2.0 Mar 30, 2025
0.1.0 Mar 30, 2025

#303 in Asynchronous

Download history 72/week @ 2025-03-25

72 downloads per month

Apache-2.0

5MB
3K SLoC

(Beta) Erlang Crash Dump Viewer CLI

Rust

This CLI tool allows you to view Erlang crash dumps without requiring wxWidgets. While it shares the purpose of the official crash dump viewer, it offers several key advantages:

  • Platform Independence: No wxWidgets dependency, enabling use over SSH or in environments without graphical interfaces.
  • Process Ancestor Grouping: Presents a "Processes Group" view, organizing processes by their named ancestor (the closest parent process in the hierarchy that has a user-defined name). This simplifies understanding complex process hierarchies. See CDParser::create_descendants_table function.
  • Memory Address Decoding: Decodes stack, heap, and message queue addresses, providing detailed insights into process memory.
  • Memory Efficiency: Unlike the official crash dump viewer, this CLI tool does not attempt to load the entire crash dump into memory, enabling analysis of very large dumps.

Note: This is a beta release, and some features are still under development. We encourage you to try it and provide feedback. See the TODO list below for planned enhancements.

Examples

cargo run sample_dumps/erl_crash_20250105-004018.dump

shows

general_view

process_group

process_view

Building Crash Dump Viewer CLI

cargo build

See the CONTRIBUTING file for how to help out.

Features Available

  • - Stack, heap, message queue parsing per process
  • - Process ancestor grouping
  • - Viewing individual information for a process

TODOs

High Priority

  • - Parallelize CrashDump::from_index_map
  • - Add TextView to inspect all output on Stack/Heap/Messages
    • - Implement additional information (when you press enter, we should be able to go into the children table)
  • - Human readable byte sizes (should be in bytes instead of words)

Future Work

  • - Implement Help Page (when you press ?, should come up with a list of commands)
  • - Better coloring that just static coloring (we're currently hardcoding a lot of colors, but these should ideally be moved out)
  • - Implement custom sorting for tables
  • - Implement a regex search for processes (current right now you can't search, only scroll down)
  • - Implement page up/down for tables
  • - Implement common lifetime and scheme for CrashDump
  • - Cleanup unwraps()
  • - Split app.rs properly into tui.rs
  • - Refactor Parser
  • - Implement JSON mode

License

Crash Dump Viewer CLI is Apache 2.0 licensed, as found in the LICENSE file.

Dependencies

~23–37MB
~629K SLoC