binutils

Manipulate ELF binaries and static archives with GNU binutils tools.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/awfixers-stuff/opencode-config --skill binutils-awfixers-stuff
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: binutils
Source: https://github.com/awfixers-stuff/opencode-config/tree/main/skills/binutils
Command: npx skills add https://github.com/awfixers-stuff/opencode-config --skill binutils-awfixers-stuff

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Provides clear, practical instructions for manipulating and inspecting compiled binaries and static archives to support debugging, distribution, and firmware workflows where symbol management, size reduction, and address-to-source mapping are required.

Core Features & Use Cases

  • Static library management: Create, list, extract, and update archives using ar and ranlib for reproducible or LTO-aware builds.
  • Stripping and debug separation: Remove debug symbols safely, produce separate debug files, and add debuglink entries for post-release debugging.
  • Binary section and format manipulation: Use objcopy to extract, add, rename, or convert sections and produce raw firmware images.
  • Address resolution and demangling: Map crash addresses to file:line with addr2line and demangle C++ symbols with c++filt for readable backtraces.
  • Inspection and extraction: Extract printable strings and examine symbols/sections to assist security reviews and reverse engineering.
  • Cross-toolchain support: Apply the same workflows with target-prefixed cross-binutils for embedded and cross-compiled artifacts.

Quick Start

Ask the binutils skill to convert crash addresses to source file and line numbers using addr2line against the unstripped binary or its separate .debug file.

Frequently Asked Questions about binutils

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I map crash addresses to source file and line numbers in an ELF binary?▼

Map crash addresses to source file and line numbers using addr2line against the unstripped binary or its separate .debug file. Accurate address-to-source mapping requires access to unstripped binaries or separate debug files built with debug symbols.

What is the best way to strip debug symbols from a binary but keep them for later debugging?▼

Strip debug symbols safely by producing separate debug files and adding debuglink entries for post-release debugging. This debug separation allows size reduction in the distributed binary while retaining symbols for later analysis.

How do I create and manage static libraries with ar and ranlib?▼

Create, list, extract, and update static library archives using ar and ranlib for reproducible or LTO-aware builds. Static library management with these tools supports organizing object files into distributable archives.

Can I use binutils tools with cross-compiled embedded firmware targets?▼

Apply binutils workflows with target-prefixed cross-toolchains for embedded and cross-compiled artifacts. Cross-toolchain support allows the same binary inspection, stripping, and packaging operations on embedded target binaries.

How do I demangle C++ symbols in a backtrace?▼

Demangle C++ symbols in backtraces using c++filt to convert mangled names into readable function signatures. This produces human-readable backtraces from compiled binaries for debugging.

How do I extract raw firmware images or manipulate binary sections?▼

Use objcopy to extract, add, rename, or convert sections and produce raw firmware images from ELF binaries. Binary section manipulation supports format conversion and firmware distribution workflows.