10.4, MH_BUNDLE, and DYLD_IMAGE_ADDED dyld_events
10.4, MH_BUNDLE, and DYLD_IMAGE_ADDED dyld_events
- Subject: 10.4, MH_BUNDLE, and DYLD_IMAGE_ADDED dyld_events
- From: "Nathan Herring" <email@hidden>
- Date: Wed, 23 Nov 2005 21:14:14 -0800
- Thread-topic: 10.4, MH_BUNDLE, and DYLD_IMAGE_ADDED dyld_events
We have a facility akin to the Apple crash reporter which turns absolute
backtrace addresses into module + offset references (and if possible,
also symbol + offset references). However, we recently started seeing
holes in the backtrace reports it is generating for some libraries, and
found that it is only bundles that are having the problem. We treat the
offset of a given library in memory as the vmaddr + vmaddr_slide values.
For MH_DYLD libraries, vmaddr is set to the base address and
vmaddr_slide is set to 0. For MH_BUNDLE libraries (under 10.3 and
earlier), vmaddr is 0, and vmaddr_slide is set to the base address.
However, in 10.4, vmaddr_slide is set to 0, and we don't have any idea
where the bundle is living in memory.
We're acquiring this information by calling
_dyld_debug_subscribe_to_events and handling DYLD_IMAGE_ADDED events,
looking in arg[0].vmaddr_slide. This does not seem to be working any
longer.
Has anyone else seen this? Is this a known issue? What has changed that
would cause this? Are there workarounds and/or is this the right way to
go about figuring out the location in memory of a module?
Thanks in advance,
nh
----
Nathan Herring
MacBU SDE/Development
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden