Skip to content

[Incomplete] A native Golang tool to extract DWARF and Symbol information for ELF Object files

License

Notifications You must be signed in to change notification settings

polarsignals/split-debug

Repository files navigation

Apache 2 License Maintenance build

Latest Release release

Go Code reference Go Report Card

split-debug

A native Golang tool to extract DWARF and Symbol information for ELF Object files

DISCLAIMER

This project is in-complete.

But feel free to contribute. This project is a proof of concept for https://github.com/parca-dev/parca-agent to extract debug information from ELF files using pure Go. It turns out a fully-fledged ELF writer written in Go doesn't exist.

So I started to write a package for that. I'm not an expert on the format, but I'm learning. Please feel free to contribute.

TODO

  • Ensure consistency of linked sections when target removed (sh_link)
  • Ensure consistency and existence of overlapping segments when a section removed (offset, range check)
  • Ensure consistency and soundness of relocations (type: SHT_RELA)
  • Ensure soundness of entry point (if the output ELF file is still executable)

Configuration

Flags:

Usage: split-debug <path>

Arguments:
  <path>    File path to the object file extract debug information from.

Flags:
  -h, --help                Show context-sensitive help.
      --log-level="info"    Log level.