Symbolization of addresses is a commonly encountered problem, maybe most so in the context of BPF and tracing with the capturing of stack traces. Perhaps superficially straightforward-looking, there a variety of considerations and intricacies, such as: - different formats/standards (e.g., ELF symbol information, DWARF, GSYM) cater to different use cases and require vastly different steps to work with - on top of that, even if a library such as libelf or libdwarf is relied on, plenty of format specific details need to be known to symbolize addresses properly - discovery of symbolization sources (e.g., DWARF debug files) - symbolization trade-offs (performance, memory usage) - system-specific details and corner cases We are working on blazesym [0], a library that aims to provide users with a batteries-included experience for symbolizing addresses (but also the reverse: mapping symbols to addresses). We would like to provide a brief overview of the library and its goals and then open up for discussion. Some topics we are specifically interested in understanding better: - What are current issues with symbolization that would be great to support? - Does the usage of Rust pose a problem in your context? (C bindings are available, but a Rust toolchain is required for building; are pre-built binaries and packages for common distributions sufficient for your use cases?) In general, we'd be interested in hearing your use cases and in discussing whether blazesym is a fit or could be made to work. Thanks, Daniel [0] https://github.com/libbpf/blazesym