add43fa43e
This new option, when set, will cause the callers of pool_alloc() and pool_free() to be recorded into an extra area in the pool that is expected to be helpful for later inspection (e.g. in core dumps). For example it may help figure that an object was released to a pool with some sub-fields not yet released or that a use-after-free happened after releasing it, with an immediate indication about the exact line of code that released it (possibly an error path). This only works with the per-thread cache, and even objects refilled from the shared pool directly into the thread-local cache will have a NULL there. That's not an issue since these objects have not yet been freed. It's worth noting that pool_alloc_nocache() continues not to set any caller pointer (e.g. when the cache is empty) because that would require a possibly undesirable API change. The extra cost is minimal (one pointer per object) and this completes well with DEBUG_POOL_INTEGRITY. |
||
---|---|---|
.. | ||
buffer-api.txt | ||
filters.txt | ||
htx-api.txt | ||
initcalls.txt | ||
ist.txt | ||
list.txt | ||
pools.txt | ||
scheduler.txt |