rust-lang / rust-lang/backtrace-rs

Make frame address meaningful without debuginfo

Open
#434 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

The current address obtained through Frame::ip is meaningless in production environment without debuginfo. The lack of a base address prevents us from resolve symbol afterwards.

We have two solutions to this problem.

  1. Expose backtrace::symbolize::native_libraries, which will allow users to record all loaded libs, and users can get bais from them. but this may reveal too many details.
  2. Add a backtrace::resolve2 or make backtrace::resolve return the correct svma and library name even without debuginfo.

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 by reading the current behavior of Frame::ip and backtrace::resolve, then compare it with the proposed symbolize::native_libraries API. Determine whether the change should expose loaded-library bases or make resolve return an SVMA and library name without debuginfo. Done means one agreed API behavior is implemented and verified for production addresses without debuginfo.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.