Covers the bread and butter of binary post-processing: creating static libraries with ar, stripping debug info while keeping separate symbol files, converting crash addresses to source lines with addr2line, and demangling C++ symbols. The objcopy examples are especially practical, like embedding binary data as linkable symbols or separating debug info so GDB can find it automatically. You'll reach for this when dealing with release builds, crash logs, or embedded targets where binary size matters. The cross-compilation prefix reminders are a nice touch since that's where these tools really earn their keep. Assumes you already know why you need to strip or demangle something, just shows you the exact incantations.
- skills.sh installs
- 665
- GitHub stars
- 279
- last updated
- Aug 21, 2026
Install
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill binutils --agent claude-codeInstalls into .claude/skills of the current project.
Files
GNU Binutils
Purpose
Guide agents through the binutils toolset for binary manipulation: static libraries, stripping, address-to-source mapping, and symbol demangling.
Triggers
- "How do I create a static library?"
- "How do I strip a binary but keep a debug file?"
- "I have an address from a crash — how do I find the source line?"
- "How do I demangle a C++ symbol name?"
- "How do I extract/replace sections in a binary?"
Workflow
1. ar — static library management
# Create static library
ar rcs libfoo.a foo.o bar.o baz.o
# List contents
ar t libfoo.a
# Extract an object
ar x libfoo.a foo.o
# Add/replace an object
ar r libfoo.a newbar.o
# Delete an object
ar d libfoo.a oldbar.o
# Show symbol index
nm libfoo.a
# Rebuild symbol index (after modifying archive externally)
ranlib libfoo.a
For LTO archives: use gcc-ar/gcc-ranlib or llvm-ar instead of plain ar.
2. strip — remove debug info
# Strip all debug info (reduce binary size)
strip --strip-all prog
# Strip only debug sections (keep symbol table)
strip --strip-debug prog
# Strip unneeded symbols (keep needed for linking)
strip --strip-unneeded prog
Sponsors
Details
- Repository
- github.com/mohitmishra786/low-level-dev-skills
- First seen
- Jun 3, 2026
More from mohitmishra786/low-level-dev-skills
All 54- Linkers Lto663
- Conan Vcpkg659
- Dynamic Linking650
- Rust Security624
- Rust Ffi613
- Rust Unsafe611
- Pgo610
- Interpreters609
- Cargo Workflows608
- Rust Sanitizers Miri604
- Meson603
- Cpp Modules597
- Rust Debugging597
- Hardware Counters590
- Debug Optimized Builds579
- Cpp Templates574
- Rustc Basics567
- Rust Cross565
- Wasm Emscripten559
- Zig Debugging555
- Zig Build System552
- Zig Cross536
- Wasm Wasmtime532
- Zig Cinterop524
