explaingit

bnjbvr/gimli

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

Audience · developerComplexity · 4/5DormantSetup · hard

TLDR

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

What do people build with it?

USE CASE 1

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

USE CASE 2

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

USE CASE 3

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

USE CASE 4

Make debugging information human-readable for troubleshooting compiler behavior.

What is it built with?

Rust

How does it compare?

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 get it running?

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.

Copy-paste 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

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

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.