| # In Android 12 (upcoming) |
| |
| ## New features |
| * Support Custom Allocators. This allows developers to instrument their |
| applications to report memory allocations / frees that are not done |
| through the malloc-based system allocators. |
| |
| ## Bugfixes |
| * Fix problems with allocations done in signal handlers using SA_ONSTACK. |
| * Fixed heapprofd for multi API. A 64-bit heapprofd service can now correctly |
| profile a 32-bit target. |
| * Fixed a bug where specifying a sampling rate of 0 would crash the target |
| process. |
| |
| # In Android 11 |
| |
| ## New features |
| * Allow to specify whether profiling should only be done for existing processes |
| or only for newly spawned ones using `no_startup` or `no_running` in |
| `HeapprofdConfig`. |
| * Allow to get the number of bytes that were allocated at a callstack but then |
| not used. |
| * Allow to dump the maximum, rather than at the time of the dump using |
| `dump_at_max` in `HeapprofdConfig`. |
| * Allow to specify timeout (`block_client_timeout_us`) when blocking mode is |
| used. This will tear down the profile if the client would be blocked for |
| longer than this. |
| * Try to auto-detect if a process uses `vfork(2)` or `clone(2)` with |
| `CLONE_VM`. In Android 10, doing memory operations in a vfork-ed child (in |
| violation of POSIX) would tear down the parent's profiling session early. |
| |
| ## Bugfixes |
| * Fixed heapprofd on x86. |
| * Fixed issue with calloc being incorrectly sampled. |
| * Remove benign `ERROR 2` bottom-most frame on ARM32. |