Re: vm_protect with VM_PROT_COPY not working on Leopard
Re: vm_protect with VM_PROT_COPY not working on Leopard
- Subject: Re: vm_protect with VM_PROT_COPY not working on Leopard
- From: Eric Gouriou <email@hidden>
- Date: Wed, 5 Mar 2008 22:06:15 -0800
On Mar 5, 2008, at 9:07 PM, Jeremy Todd wrote:
This looks interesting, but I'm curious whether it will allow me to
replace
all invocations of malloc. For example if my code calls a function
defined
in some system library, and that function in turn calls malloc(),
will it
call my interposed malloc?
Yes, even calls to malloc() from within libc / libsystem (e.g.,
strdup()).
malloc (and friends) is one of those entry points for which
interposing is part
of the ABI contract. Direct calls to its default implementation are
not allowed,
everything must go through the dynamic symbol resolution.
Such guarantees do not exist in general for other library entry
points.
Intra-library calls are frequently done directly, bypassing the dyld
logic.
Eric
Jeremy
-----Original Message-----
From: Chris Sarcone [mailto:email@hidden]
Sent: Wednesday, March 05, 2008 6:03 PM
To: Jeremy Todd
Cc: email@hidden
Subject: Re: vm_protect with VM_PROT_COPY not working on Leopard
Jeremy --
You might find this helpful:
http://developer.apple.com/documentation/DeveloperTools/Concep
tual/DynamicLibraries/DynamicLibraries.pdf
Search for "interposing".
-- Chris
On Mar 5, 2008, at 2:44 PM, Jeremy Todd wrote:
Hi,
I'm trying to patch the malloc function
[...]
In case anyone is wondering, I need to do this as part
of our development process for audio plug-ins. These plug-ins
should not call certain functions (including malloc) from the
high-priority processing thread to avoid priority inversion
and related problems. We have special debug builds which
patch the malloc function, and if a malloc is detected in the
processing thread, we get a very nice call stack in the
debugger which makes it trivial to find the source of these problems.
_______________________________________________
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