ddprof icon indicating copy to clipboard operation
ddprof copied to clipboard

Using RTLD_DEEPBIND + custom allocator breaks allocation profiling

Open r1viollet opened this issue 3 months ago • 0 comments

Description

The following setup breaks our current assumptions in allocation profiling:

  • The executable resolves malloc from the global scope. This typically means the system allocator (e.g., the one provided by libc) is used.

  • A shared library (libA) is loaded and defines its own allocator. Under normal circumstances, this should not affect which allocator is used by the executable itself. However, if libA is loaded with the RTLD_DEEPBIND flag, symbol resolution for malloc inside libA will prioritize its own definition rather than the global one. As a result, libA and the main executable may end up using different allocators.

Impact

This creates a situation where malloc calls must be intercepted and dispatched to different allocator implementations depending on the originating call site. Since this behavior is currently not handled by ddprof, it can result in allocator mismatches and potential crashes.

r1viollet avatar Oct 08 '25 14:10 r1viollet