You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove dladdr fallback and implementation (rust-lang#317)
* Remove dladdr fallback and implementation
This has been present for a very long time but I believe this has never
actually been that necessary. Non-MSVC platforms all use libbacktrace by
default, and libbacktrace will consult symbol tables of object files to
do what `dladdr` does, just inside of libbacktrace. Additionally gimli
implements the same logic. I believe that this means that `dladdr` isn't
necessary for resolving any symbols since our other strategies should
already be doing everything for us.
This commit makes the feature defunkt and otherwise removes the various
forms of fallback to dladdr.
* Switch to the `object` crate for object parsing
This commit switches the gimli feature from the `goblin` crate to the
`object` crate for parsing object files. The main motivation here is
trimming the dependencies of the `gimli-symbolize` feature to a bare
minimum. The `object` crate itself has no dependencies now and should be
a relatively easy drop-in replacement for the `goblin` crate.
* Parse fat libraries on macOS
This commit updates the object parsing code for macOS to support fat
libraries. This enables gimli to symbolize addresses coming from system
libraries which are currently installed frequently as fat libraries.
Closesrust-lang#319
* Fix macOS symbolication of system libraries
This commit fixes an issue where symbolication of system libraries
didn't work on macOS. Symbolication through the symbol table was always
off by a slide amount for the library. It's not entirely clear why this
kept happening or what was going on, but some poking in LLDB's source
revealed a way we can differentiate and figure out what addresses need
to be looked up in the symbol table. Some more information is contained
in the comments of the commit itself.
Closesrust-lang#318
Co-authored-by: Philip Craig <philipjcraig@gmail.com>
0 commit comments