• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

gimli-rs / object / 8227892387
56%

Build:
DEFAULT BRANCH: master
Ran 11 Mar 2024 05:03AM UTC
Jobs 1
Files 90
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Mar 2024 05:01AM UTC coverage: 49.456% (-0.1%) from 49.604%
8227892387

push

github

web-flow
Correctly handle dyld caches on macOS 13 and above (#642)

This allows successful parsing of dyld caches on
macOS 13 and above on Intel Macs.

The main dyld cache file on macOS contains an array of
subcache info structs, each of which specifies the UUID
(and some other information) of each subcache.
`DyldCache::parse` checks that the subcache UUIDs match
these expected UUIDs.

In macOS 13, the format of the subcache info struct
changed: it gained an additional field after the UUID
field. This means that as soon as you had more than
one subcache, our UUID check would fail, because the
second subcache UUID would be read from the wrong offset.

I didn't notice this on my Apple Silicon Mac, because
the arm64e dyld cache only has one subcache:
`dyld_shared_cache_arm64e.01`.
But on Intel Macs, there are currently four subcaches:
`dyld_shared_cache_x86_64.01`, `.02`, `.03`, and `.04`.

In practice this means that my software hasn't been able to
symbolicate macOS system libraries on Intel Macs since
the release of macOS 13.

This commit adds the new struct definition and makes
the UUID check work correctly.

This is a breaking change to the public API. I added
a `DyldSubCacheSlice` enum, but I'm not particularly
fond of it.

dyldcachedump was working correctly on macOS 13+ because it was trying
the "leading zero" suffix format as well as the "no leading zero" suffix
format. This commit changes it to read the suffix from the main cache
header.

objdump was not able to parse dyld shared cache files on macOS 13+ because
it was only using the "no leading zero" suffix format, and thus not finding
the subcaches.

0 of 74 new or added lines in 4 files covered. (0.0%)

8 existing lines in 4 files now uncovered.

7959 of 16093 relevant lines covered (49.46%)

1.43 hits per line

Jobs
ID Job ID Ran Files Coverage
1 8227892387.1 11 Mar 2024 05:03AM UTC 0
49.46
GitHub Action Run
Source Files on build 8227892387
Detailed source file information is not available for this build.
  • Back to Repo
  • 791adb0a on github
  • Prev Build on master (#8151075408)
  • Next Build on master (#8228068504)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc