MCPcopy Index your code
hub / github.com/WhatsApp/crashdump_viewer_cli

github.com/WhatsApp/crashdump_viewer_cli @v0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.0 ↗ · + Follow
137 symbols 250 edges 11 files 27 documented · 20% updated 3mo agov0.3.0 · 2025-04-26★ 71
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

(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.

Demo

asciicast

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

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

TODOs

High Priority

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

Future Work

  • [x] - Implement Help Page (when you press ?, should come up with a list of commands)
  • [x] - Better coloring that just static coloring (we're currently hardcoding a lot of colors, but these should ideally be moved out)
  • [x] - 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.

Core symbols most depended-on inside this repo

len
called by 38
src/parser/types.rs
parse
called by 14
src/parser/parser.rs
parse_datatype
called by 11
src/parser/types.rs
title
called by 9
src/app.rs
parse_section
called by 9
src/parser/types.rs
render
called by 8
src/ui.rs
quit
called by 8
src/app.rs
next
called by 7
src/event.rs

Shape

Method 73
Class 41
Enum 13
Function 10

Languages

Rust100%

Modules by API surface

src/parser/types.rs76 symbols
src/app.rs32 symbols
src/parser/parser.rs13 symbols
src/tui.rs6 symbols
src/event.rs4 symbols
src/main.rs2 symbols
src/config.rs2 symbols
src/ui.rs1 symbols
src/handler.rs1 symbols

For agents

$ claude mcp add crashdump_viewer_cli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page