- Fix issue with no build id showing up as `000000`... (e.g. no debug
info), now shows as `<no build id>` as intended.
- Try to avoid loading PE file unless it's necessary on Windows
symbolicating backtraces.
- DefaultSymbolLocator: PDB file finding now respects the overridable
path for use in the offline symbolicator (no effect on standard
backtracing).
- Record timestamp/size in Image Info on windows for possible future use
in offline symbolicator
---------
Co-authored-by: Carl Peto <carlpeto@Carls-MacBook-Pro.local>
- **Explanation**:
Add extra SPI to be able to override find methods (for offline
symbolication fetch).
- **Scope**:
No functional change to existing SPI, adds new SPI (and two methods
changed from `public` to `open`).
- **Issues**:
rdar://136978398
- **Original PRs**:
n/a
- **Risk**:
none
- **Testing**:
tested in a local build on Darwin and Linux
- **Reviewers**:
@al45tair
Co-authored-by: Carl Peto <carlpeto@Carls-MacBook-Pro.local>
For some reason `DWORD` is `UInt` rather than `UInt32`, which seems wrong.
Anyway, be explicit and use `UInt32` instead.
Also, ignore the image path result from `findElf`, to get rid of a warning.
rdar://172911008
Refactoring to allow override on the hard coded image
paths in crash logs. To allow cross platform
offline symbolication.
Co-authored-by: Carl Peto <carlpeto@Carls-MacBook-Pro.local>
Co-authored-by: Alastair Houghton <alastair@alastairs-place.net>
Reorganise the thread locals for the backtracing code in the `Runtime` module so
that there’s only one set of them, with everything else hanging off that. This
also reduces code duplication and consumption of thread local variable space.
Fix the `DefaultSymbolLocator`’s shared instance to be thread local.
rdar://171432566
This is better than the `alternativePaths` mechanism because it means that
a client of the `Runtime` module can do its own thing, which might even
mean fetching things from a remote server or decompressing files or any
other thing we might find useful.
rdar://170642627