Repository: rust
Issue: Backtrace path usability issue
Labels: A-debuginfo,T-compiler,WG-debugging

As an imperfect developer of software that processes imperfect files, backtraces are a... thing. Accurate and navigable backtraces (when using tooling of any kind) are especially helpful. 

It would be wonderful to be able to generate backtraces that are relative to my workspace, working directory, or something other than the non-portable /home/user/... or insufficiently specific ./mod.rs, since I have multiple crates. (I'm referring to RUST_BACKTRACE=full and RUST_BACKTRACE=1 respectively). 

Perhaps this already exists - "RUST_BACKTRACE" is a difficult search term due to noise. 

But if not, I would like to propose "RUST_BACKTRACE_DIR=", which simply truncates the given value from the beginning of any backtrace file path if a match is found. I don't think any allocations would be needed if we're targeting "mycrate/mod.rs" as a result. I assume the formatter could also handle inserting "./" into the output if such a feature was needed (I don't think I do, but others might). 

This feature would be helpful not only for WSL users, but also for any remote development or failure analysis work where the build didn't happen on the machine your tooling has access to. 

I'm not sure that the current crate-relative behavior for RUST_BACKTRACE=1 is correct when you're building a workspace either, but I think there's little downside to having more specific control over paths. 

### Code

(from a workspace with multiple crates, including imageflow_core)
```Rust
RUST_BACKTRACE=1 cargo test
```


### Current output

```Shell
thread 'test_crop_exif' panicked at 'called `Result::unwrap()` on an `Err` value', imageflow_core/tests/common/mod.rs:374:45
stack backtrace:
   0: rust_begin_unwind
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/panicking.rs:67:14
   2: core::result::unwrap_failed
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/result.rs:1651:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/result.rs:1076:23
   4: visuals::common::ChecksumCtx::bitmap_matches
             at ./tests/common/mod.rs:373:13
```

### Desired output

```Shell
thread 'test_crop_exif' panicked at 'called `Result::unwrap()` on an `Err` value', imageflow_core/tests/common/mod.rs:374:45
stack backtrace:
   0: rust_begin_unwind
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/std/src/panicking.rs:593:5
   1: core::panicking::panic_fmt
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/panicking.rs:67:14
   2: core::result::unwrap_failed
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/result.rs:1651:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/8ede3aae28fe6e4d52b38157d7bfe0d3bceef225/library/core/src/result.rs:1076:23
   4: visuals::common::ChecksumCtx::bitmap_matches
             at imageflow_core/tests/common/mod.rs:373:13
```
```