gitwtfhub

wtf is gimli?

bnjbvr/gimli — explained in plain English

Analysis updated 2026-07-18 · repo last pushed 2021-02-20

Audience · developerComplexity · 4/5DormantSetup · hard

TL;DR

A fast Rust library for reading DWARF debugging information from compiled binaries, so tools like debuggers and crash analyzers can look up source lines and variable names without copying data around.

Mindmap

mindmap
  root((gimli))
    What it does
      Parses DWARF debug data
      Works on raw bytes
      No unnecessary copying
    Tech Stack
      Rust
      DWARF format
    Use Cases
      Build a debugger
      Map addresses to source lines
      Analyze crash dumps
    Audience
      Tool developers
      Systems programmers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build a custom debugger that reads DWARF data to show source lines and variable names.

REASON 2

Write a tool like addr2line that maps crash memory addresses back to source code locations.

REASON 3

Build a profiler or crash analyzer that needs to understand what's in a compiled binary.

REASON 4

Make debugging information human-readable for troubleshooting compiler behavior.

What's in the stack?

Rust

How it stacks up

bnjbvr/gimli0verflowme/alarm-clock0verflowme/seclists
LanguageCSS
Last pushed2021-02-202022-10-032020-05-03
MaintenanceDormantDormantDormant
Setup difficultyhardeasyeasy
Complexity4/52/51/5
Audiencedevelopervibe coderops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires a companion library like object to extract DWARF sections before passing data to gimli.

License is not stated in the available content.

Yoink these prompts

Prompt 1
Show me how to use gimli to parse DWARF sections extracted from an ELF binary with the object crate.
Prompt 2
Write a small Rust program using gimli that maps a memory address to a source file and line number.
Prompt 3
Explain how gimli avoids copying data when parsing large DWARF sections.
Prompt 4
Help me understand how gimli stays neutral about ELF vs Mach-O and what scaffolding I need to add.
Prompt 5
Walk me through building a simple crash analyzer on top of gimli.

Frequently asked questions

wtf is gimli?

A fast Rust library for reading DWARF debugging information from compiled binaries, so tools like debuggers and crash analyzers can look up source lines and variable names without copying data around.

Is gimli actively maintained?

Dormant — no commits in 2+ years (last push 2021-02-20).

What license does gimli use?

License is not stated in the available content.

How hard is gimli to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is gimli for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.