rust-lang / backtrace-rs

Backtraces in Rust
https://docs.rs/backtrace
Other
530 stars 245 forks source link

Remove libbacktrace implementation #423

Closed alexcrichton closed 3 years ago

alexcrichton commented 3 years ago

This commit removes the backtrace-sys crate and the libbacktrace implementation of this crate. For quite some time now the gimli-symbolize feture has been on-by-default. While libbacktrace has been an option all relevant features should have been implemented in gimli-symbolize by now.

The libbacktrace implementation has always been approached with wariness where it may segfault or cause worse behavior when fed bad debug information. Debug information is possible to change at runtime, so libbacktrace has always been a risk for Rust binaries. Additionally libbacktrace development was very quiet for a very long time and our patches upstream were generally met with silence. Development seems to have picked back up upstream but with this crate now switched to gimli I'm not too personally motivated to check to see if all our fixes have landed. In general, though, libbacktrace upstream always worked best with Linux and other platforms were more "best-effort". Additionally gimli now has more features for supporting compressed and split-debuginfo as well.

This commit comes about to reduce the maintenance burden on this crate. Recent changes in rust-lang/rust have actually broken libbacktrace testing. This appears fixed with sync'ing to the upstream repository of libbacktrace, but it seems like now's the right time to go ahead and remove the crate.

Closes #234 Closes #290 Closes #409