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.