rust-lang / rust-lang/backtrace-rs

Optional fall back to LLVM symbolizer markup

Open
#485 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted
Dominant language
Rust
Stars
628
Forks
291
PR merge metrics
No merged PRs in 30d

Description

Now that Symbolizer Markup has landed in LLVM 15.0.2, it would be possible to add an option to emit this markup whenever symbol information is unavailable (fully-stripped binaries, etc.).

Producing symbolizer markup would allow llvm-symbolizer to produce human-readable backtraces from it after the fact, looking up the necessary artifacts using debuginfod. This complements https://github.com/rust-lang/backtrace-rs/issues/459; since it would be nice to have debuginfod lookups handled transparently, but that's not always possible (e.g., for embedded or sandboxed environments).

This should be relatively straightforward to implement, since the format is just a simple textual representation of the memory layout of the process and the return addresses of the backtrace.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with LLVM's Symbolizer Markup Format and the existing backtrace output paths in backtrace-rs; the issue does not name specific files or tests. Determine where symbol information is unavailable and how an option should select markup output. Done means fully stripped or otherwise unsymbolized backtraces can emit markup that llvm-symbolizer can later resolve using debuginfod.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.