
Dwarf Expert
Answer DWARF v3–v5 questions and guide parsing or verification of debug sections in compiled binaries when you are diagnosing toolchain or symbol issues.
Overview
dwarf-expert is an agent skill for the Ship phase that provides DWARF v3–v5 expertise for parsing, verifying, and explaining debug information in compiled binaries.
Install
npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill dwarf-expertWhat is this skill?
- Covers DWARF standard expertise for versions 3, 4, and 5 only—explicitly not v1/v2
- Guides use of dwarfdump, readelf, and llvm-dwarfdump --verify for integrity checks
- Supports code that parses DWARF via libdwarf, pyelftools, gimli, and similar libraries
- Allowed tools: Read, Bash, Grep, Glob, WebSearch for inspecting binaries and references
- Anti-patterns documented: not for general ELF-only work, runtime gdb debugging, or binary reverse engineering
- DWARF versions 3, 4, and 5 covered
- 5 allowed tool classes (Read, Bash, Grep, Glob, WebSearch)
Adoption & trust: 1 installs on skills.sh; 40.1k GitHub stars; 3/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You have a binary or parser codepath and cannot tell whether DWARF sections are valid, complete, or aligned with the standard you need to support.
Who is it for?
Advanced indie tool authors validating debug metadata, maintaining symbol-related CLI tools, or answering DWARF spec questions during code review.
Skip if: DWARF v1/v2 legacy binaries, gdb/lldb stepping sessions, general ELF tasks with no debug data, or reverse-engineering workflows called out in the skill’s when-not-to-use list.
When should I use this skill?
Triggers when understanding DWARF information, interacting with DWARF files, answering DWARF-related questions, or working with code that parses DWARF data.
What do I get? / Deliverables
You get standard-accurate explanations, tool commands, and implementation guidance scoped to DWARF 3–5 without conflating ELF parsing or live debugging.
- DWARF-standard explanations
- Suggested dwarfdump/readelf command sequences
- Parser or review guidance for DWARF-consuming code
Recommended Skills
Journey fit
Ship / review is the canonical shelf because DWARF work supports inspecting debug metadata quality before you trust crash reports, symbols, or custom tooling—not greenfield UI design. Review fits static analysis of debug info (dwarfdump, readelf, llvm-dwarfdump --verify) rather than live gdb/lldb stepping.
How it compares
Use dwarf-expert for DWARF spec and file semantics instead of asking a generic debugging skill to improvise DIE grammar.
Common Questions / FAQ
Who is dwarf-expert for?
dwarf-expert is for developers shipping native binaries or DWARF-aware tooling who need spec-grounded help with debug sections, not casual app-only JavaScript builders.
When should I use dwarf-expert?
Use it in Ship review when verifying DWARF with llvm-dwarfdump, parsing DIEs for a CLI tool, or answering standard questions while modifying libdwarf/gimli/pyelftools code—skip it for runtime gdb sessions or non-DWARF ELF work.
Is dwarf-expert safe to install?
It allows Read, Bash, Grep, and Glob on your binaries; review the Security Audits panel on this page and avoid pointing agents at sensitive production artifacts without scoping paths.
SKILL.md
READMESKILL.md - Dwarf Expert
# Overview This skill provides technical knowledge and expertise about the DWARF standard and how to interact with DWARF files. Tasks include answering questions about the DWARF standard, providing examples of various DWARF features, parsing and/or creating DWARF files, and writing/modifying/analyzing code that interacts with DWARF data. ## When to Use This Skill - Understanding or parsing DWARF debug information from compiled binaries - Answering questions about the DWARF standard (v3, v4, v5) - Writing or reviewing code that interacts with DWARF data - Using `dwarfdump` or `readelf` to extract debug information - Verifying DWARF data integrity with `llvm-dwarfdump --verify` - Working with DWARF parsing libraries (libdwarf, pyelftools, gimli, etc.) ## When NOT to Use This Skill - **DWARF v1/v2 Analysis**: Expertise limited to versions 3, 4, and 5. - **General ELF Parsing**: Use standard ELF tools if DWARF data isn't needed. - **Executable Debugging**: Use dedicated debugging tools (gdb, lldb, etc) for debugging executable code/runtime behavior. - **Binary Reverse Engineering**: Use dedicated RE tools (Ghidra, IDA) unless specifically analyzing DWARF sections. - **Compiler Debugging**: DWARF generation issues are compiler-specific, not covered here. # Authoritative Sources When specific DWARF standard information is needed, use these authoritative sources: 1. **Official DWARF Standards (dwarfstd.org)**: Use web search to find specific sections of the official DWARF specification at dwarfstd.org. Search queries like "DWARF5 DW_TAG_subprogram attributes site:dwarfstd.org" are effective. 2. **LLVM DWARF Implementation**: The LLVM project's DWARF handling code at `llvm/lib/DebugInfo/DWARF/` serves as a reliable reference implementation. Key files include: - `DWARFDie.cpp` - DIE handling and attribute access - `DWARFUnit.cpp` - Compilation unit parsing - `DWARFDebugLine.cpp` - Line number information - `DWARFVerifier.cpp` - Validation logic 3. **libdwarf**: The reference C implementation at github.com/davea42/libdwarf-code provides detailed handling of DWARF data structures. # Verification Workflows Use `llvm-dwarfdump` verification options to validate DWARF data integrity: ## Structural Validation ```bash # Verify DWARF structure (compile units, DIE relationships, address ranges) llvm-dwarfdump --verify <binary> # Detailed error output with summary llvm-dwarfdump --verify --error-display=full <binary> # Machine-readable JSON error summary llvm-dwarfdump --verify --verify-json=errors.json <binary> ``` ## Quality Metrics ```bash # Output debug info quality metrics as JSON llvm-dwarfdump --statistics <binary> ``` The `--statistics` output helps compare debug info quality across compiler versions and optimization levels. ## Common Verification Patterns - **After compilation**: Verify binaries have valid DWARF before distribution - **Comparing builds**: Use `--statistics` to detect debug info quality regressions - **Debugging debuggers**: Identify malformed DWARF causing debugger issues - **DWARF tool development**: Validate parser output against known-good binaries # Parsing DWARF Debug Information ## readelf ELF files can be parsed via the `readelf` command ({baseDir}/reference/readelf.md). Use this for general ELF information, but prefer `dwarfdump` for DWARF-specific parsing. ## dwarfdump DWARF files can be parsed via the `dwarfdump` command, which is more effective at parsing and displaying complex DWARF information than `readelf` and should be used for most DWARF parsing tasks ({baseDir}/reference/dwarfdump