Dynamic Object Padding
The default behavior of the runtime linker relies on the operating system to load dynamic objects where they can be most efficiently referenced. Some controlling processes benefit from the existence of padding around the objects loaded into memory of the target process. This interface enables a controlling process to request this padding.
-
rd_objpad_enable
() -
This function enables or disables the padding of any subsequently loaded objects with the target process. Padding occurs on both sides of the loaded object.
rd_err_e rd_objpad_enable(struct rd_agent *rdap, size_t padsize);
padsize
specifies the size of the padding, in bytes, to be preserved both before and after any objects loaded into memory. This padding is reserved as a memory mapping from ammapobj
(2) request. Effectively, an area of the virtual address space of the target process, adjacent to any loaded objects, is reserved. These areas can later be used by the controlling process.A
padsize
of 0 disables any object padding for later objects.
Note:
Reservations obtained usingmmapobj
(2) can be reported using the
proc
(1) facilities and by referring to the link-map
information provided in rd_loadobj_t
.