blob: 28be84f82e1dd5a18d1c2ac3b7a3c7df3edccd99 [file] [log] [blame] [view]
# 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.