platform_bionic/libc/bionic
Christopher Ferris 2e1a40a203 Change heap dump format slightly.
Bump the version from v1.1 to v1.2 and add a build fingerprint line.

Update the heap dump documentation to match the new format and reflect
what made it in P and what made it in Q.

Update the unit tests for this change.

Add -O0 to unit test code to make it easier to debug.

Add an external function that can be used by the framework code
so that there is only one way to dump the heap.

Bug: 110095681

Test: Ran unit tests.
Test: Did a dump of a real process and verified fingerprint.
Test: Did a dump of a process without malloc debug enabled.
Change-Id: I769a476cbeaf4c85c5d75bd6d6385f0e3add948c
Merged-In: I769a476cbeaf4c85c5d75bd6d6385f0e3add948c
(cherry picked from commit c84a2a2601)
2018-06-15 12:29:13 -07:00
..
__bionic_get_shell_path.cpp Use treble_linker_namespace instead of treble. 2017-12-13 14:11:26 -08:00
__cmsg_nxthdr.cpp Move __cmsg_nxthdr to its proper file. 2014-07-10 12:47:13 +01:00
__cxa_guard.cpp Always use CLOCK_MONOTONIC for pthreads and semaphores 2017-08-18 09:11:05 -07:00
__cxa_pure_virtual.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
__cxa_thread_atexit_impl.cpp Fix dlclose for libraries with thread_local dtors 2018-01-10 10:24:06 +01:00
__errno.cpp Remove volatile from the __errno declaration. 2017-06-13 16:02:07 -07:00
__gnu_basename.cpp Implement the GNU basename(3) in addition to the POSIX one. 2014-08-19 14:30:30 -07:00
__libc_current_sigrtmax.cpp Make unified headers' SIGRTMIN/SIGRTMAX usable before API 21. 2017-04-26 14:34:36 -07:00
__libc_current_sigrtmin.cpp Filter out reserved signals in functions that take sigset_t. 2018-02-27 14:12:30 -08:00
__libc_init_main_thread.cpp Inline __libc_init_global_stack_chk_guard. 2018-05-30 16:10:35 -07:00
__set_errno.cpp Move __set_errno to ndk_cruft.cpp. 2015-10-29 18:11:32 -07:00
__stack_chk_fail.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
abort.cpp Add struct sigaction64 and sigaction64. 2018-02-01 14:45:15 -08:00
accept.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
accept4.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
access.cpp
android_set_abort_message.cpp Make __libc_init_main_thread and android_set_abort_message weak 2017-10-19 18:18:23 +02:00
arpa_inet.cpp Fix inet_aton on LP32. 2015-10-09 17:36:05 -07:00
assert.cpp Remove dead longjmperror. 2017-08-23 15:40:03 -07:00
atof.cpp
bionic_arc4random.cpp Inline __libc_arc4random_has_unlimited_entropy. 2018-02-06 15:35:15 -08:00
bionic_futex.cpp Support priority inheritance mutex in 64bit programs. 2018-01-24 16:11:07 -08:00
bionic_netlink.cpp Fix ifaddrs error handling. 2016-10-14 14:35:26 -07:00
bionic_netlink.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
bionic_systrace.cpp Move static variable out of should_trace(). 2018-01-26 17:01:55 +08:00
bionic_time_conversions.cpp Always use CLOCK_MONOTONIC for pthreads and semaphores 2017-08-18 09:11:05 -07:00
brk.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
c16rtomb.cpp Hide various mbstate implementation details. 2017-07-14 17:00:05 -07:00
c32rtomb.cpp Hide various mbstate implementation details. 2017-07-14 17:00:05 -07:00
chmod.cpp
chown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
clearenv.cpp
clock.cpp Move <sys/sysconf.h> to <bits/sysconf.h>. 2016-04-07 18:02:00 -07:00
clock_getcpuclockid.cpp Minor clock_getcpuclockid optimization. 2016-03-07 11:54:02 -08:00
clock_nanosleep.cpp clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case 2016-03-28 10:29:16 -07:00
clone.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
close.cpp Simplify close(2) EINTR handling. 2015-04-23 08:41:45 -07:00
connect.cpp Cosmetic changes to netd client files. 2014-05-18 15:18:36 -07:00
ctype.cpp Remove isascii_l(3). 2014-07-14 15:48:02 -07:00
dirent.cpp Add null checks to <dirent.h> functions. 2017-10-26 16:16:33 -07:00
dl_iterate_phdr_static.cpp All architectures have AT_SYSINFO_EHDR now. 2017-09-22 13:08:50 -07:00
dup2.cpp Fix dup2 in the case where the two fds are equal. 2015-02-23 21:52:56 -08:00
environ.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
error.cpp Clean up <stdlib.h> slightly. 2015-01-26 14:28:41 -08:00
ether_aton.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
ether_ntoa.c Fix our *ether* headers mess. 2016-05-13 11:00:22 -07:00
eventfd_read.cpp
eventfd_write.cpp
exec.cpp Add POSIX fexecve. 2017-10-18 16:26:17 -07:00
faccessat.cpp Add details on why AT_SYMLINK_NOFOLLOW is dangerous 2017-02-14 12:55:15 -08:00
fchmod.cpp Add POSIX fexecve. 2017-10-18 16:26:17 -07:00
fchmodat.cpp Ensure raw fchmod/fchmodat syscalls are hidden. 2015-02-03 12:10:30 -08:00
ffs.cpp
fgetxattr.cpp Add POSIX fexecve. 2017-10-18 16:26:17 -07:00
flistxattr.cpp Add POSIX fexecve. 2017-10-18 16:26:17 -07:00
flockfile.cpp Revert "Revert "Remove __sinit and __sdidinit."" 2015-12-05 07:30:59 -08:00
fork.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
fortify.cpp Bionic: Always use fortified versions of FD_X macros 2018-04-13 17:57:21 -07:00
fpclassify.cpp Remove some legacy declarations from <math.h>. 2017-10-19 14:15:31 -07:00
fsetxattr.cpp Add POSIX fexecve. 2017-10-18 16:26:17 -07:00
ftruncate.cpp Cleanup ftruncate negative test. 2015-06-01 13:22:57 -07:00
fts.c Fix various ftw/nftw "shall fail"s from POSIX. 2018-05-08 15:20:07 -07:00
ftw.cpp Fix various ftw/nftw "shall fail"s from POSIX. 2018-05-08 15:20:07 -07:00
futimens.cpp
getauxval.cpp set errno to ENOENT in getauxval per glibc 2.19 2015-03-17 19:50:55 -04:00
getcwd.cpp Remove valgrind workarounds. 2018-06-12 15:29:36 -07:00
getdomainname.cpp Add {get,set}domainname(2) 2016-03-25 14:16:58 -07:00
getentropy.cpp Rewrite getentropy. 2018-02-05 12:57:22 -08:00
gethostname.cpp gethostname.c: change to report ENAMETOOLONG error when buflen is less 2014-11-12 12:07:33 -08:00
getpagesize.cpp Break up the rest of stubs.cpp. 2016-04-06 08:34:58 -07:00
getpgrp.cpp
getpid.cpp Make getpid work before the main thread is initialized. 2016-06-28 15:52:59 -07:00
getpriority.cpp Fix getpriority/setpriority types. 2016-11-29 15:14:11 -08:00
gettid.cpp Shave another uninteresting stack frame off aborts. 2017-06-20 14:58:16 -07:00
grp_pwd.cpp Require vendor users and groups to start with vendor_ 2018-05-15 14:10:21 -07:00
grp_pwd_file.cpp Merge "Require vendor users and groups to start with vendor_" 2018-05-16 16:19:28 +00:00
grp_pwd_file.h Require vendor users and groups to start with vendor_ 2018-05-15 14:10:21 -07:00
iconv.cpp Add missing includes. 2017-10-11 11:25:52 -07:00
icu.cpp Address a bunch of clang-tidy complaints. 2018-01-19 15:56:12 -08:00
icu_static.cpp Add libc_nopthread. 2017-10-16 21:31:37 -07:00
icu_wrappers.cpp Implement wcwidth(3) in terms of icu4c. 2017-07-27 17:08:24 -07:00
ifaddrs.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
initgroups.c
inotify_init.cpp
ioctl.cpp fix the mremap signature 2015-11-06 13:14:43 -08:00
isatty.c
jemalloc.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
jemalloc_wrapper.cpp Add a legacy inline for mmap64. 2017-10-05 23:41:47 -07:00
killpg.cpp Replace killpg. 2017-07-11 15:00:17 -07:00
langinfo.cpp Implement <langinfo.h>. 2016-11-19 11:46:54 -08:00
lchown.cpp Remove bogus transitive includes. 2014-12-29 13:29:50 -08:00
legacy_32_bit_support.cpp Sign extend offset for pwritev/preadv. 2018-03-06 15:39:44 -08:00
lfs64_support.cpp CLOEXEC support in fdopen, freopen, and mkostemp/mkostemps. 2014-09-23 18:21:52 -07:00
libc_init_common.cpp Initialize __libc_sysinfo early on. 2018-05-30 16:44:23 -07:00
libc_init_common.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
libc_init_dynamic.cpp Remove valgrind workarounds. 2018-06-12 15:29:36 -07:00
libc_init_static.cpp Initialize __libc_sysinfo early on. 2018-05-30 16:44:23 -07:00
libgen.cpp Allocate thread local buffers in __init_tls. 2017-02-22 16:05:03 -08:00
link.cpp
locale.cpp Add a non-TLS slot implementation of locale.cpp. 2017-07-12 13:47:42 -07:00
lockf.cpp Fix lockf for LP32. 2016-01-26 14:32:55 -08:00
lstat.cpp
malloc_common.cpp Change heap dump format slightly. 2018-06-15 12:29:13 -07:00
malloc_info.cpp Implement malloc_info(3). 2014-08-22 10:23:12 -07:00
malloc_info.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
mblen.cpp Implement mblen(3). 2016-04-28 16:41:29 -07:00
mbrtoc16.cpp Hide various mbstate implementation details. 2017-07-14 17:00:05 -07:00
mbrtoc32.cpp Hide various mbstate implementation details. 2017-07-14 17:00:05 -07:00
memmem.cpp libc: add const-correct string.h overloads 2017-04-05 13:17:07 -07:00
mempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00
mkdir.cpp
mkfifo.cpp Add mkfifoat(3). 2014-10-23 19:10:54 -07:00
mknod.cpp
mmap.cpp Add a legacy inline for mmap64. 2017-10-05 23:41:47 -07:00
mntent.cpp Allocate thread local buffers in __init_tls. 2017-02-22 16:05:03 -08:00
mremap.cpp Add a legacy inline for mmap64. 2017-10-05 23:41:47 -07:00
ndk_cruft.cpp Clean up __isthreaded. 2017-05-11 15:29:03 -07:00
net_if.cpp Fix google-explicit-constructor warnings. 2016-05-03 12:08:05 -07:00
netdb.cpp Complete <netdb.h>. 2017-10-15 10:37:51 -07:00
NetdClient.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
NetdClientDispatch.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
netinet_in.cpp POSIX says IPPORT_RESERVED is in <netdb.h>. 2016-08-12 10:38:35 -07:00
new.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
nl_types.cpp Add trivial no-op <nl_types.h>. 2016-04-06 17:22:44 -07:00
open.cpp With O_TMPFILE, open(2) takes a mode argument. 2017-08-04 10:20:18 -07:00
pathconf.cpp Clean up <sys/limits.h> a bit. 2016-11-30 09:06:53 -08:00
pause.cpp Add sigset64_t and accompanying functions. 2018-01-30 18:47:16 -08:00
pipe.cpp
poll.cpp Filter out reserved signals in functions that take sigset_t. 2018-02-27 14:12:30 -08:00
posix_fadvise.cpp Add posix_fadvise(3). 2014-09-11 08:45:46 -07:00
posix_fallocate.cpp
posix_madvise.cpp implement posix_madvise 2014-12-04 11:01:28 -08:00
posix_timers.cpp timer_create: use SIG_SETMASK restore the signal mask. 2018-03-20 17:58:11 -07:00
pthread_atfork.cpp Eliminate deadlock in forked child due to delayed resetting mutex lock 2016-11-07 03:32:57 +00:00
pthread_attr.cpp Preserve historical pthread_create scheduler behavior better. 2017-10-27 15:40:15 -07:00
pthread_barrier.cpp Fix pthread_barrierattr_getpshared prototype. 2016-08-11 23:18:13 -07:00
pthread_cond.cpp Add _monotonic_np versions of timed wait functions 2018-03-20 18:41:22 -07:00
pthread_create.cpp Preserve historical pthread_create scheduler behavior better. 2017-10-27 15:40:15 -07:00
pthread_detach.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
pthread_equal.cpp
pthread_exit.cpp Better handling of sigset_t on LP32. 2018-01-26 13:04:57 -08:00
pthread_getcpuclockid.cpp Be more strict about using invalid pthread_ts. 2017-02-13 17:59:29 -08:00
pthread_getschedparam.cpp Be more strict about using invalid pthread_ts. 2017-02-13 17:59:29 -08:00
pthread_gettid_np.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
pthread_internal.cpp Drop thread list lock before abort. 2017-09-18 14:40:35 -07:00
pthread_internal.h Switch the rest of our internal headers to #pragma once. 2018-02-13 14:27:17 -08:00
pthread_join.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
pthread_key.cpp Mark __BIONIC_WEAK_FOR_NATIVE_BRIDGE symbols 2017-10-27 10:01:46 +02:00
pthread_kill.cpp Be more strict about using invalid pthread_ts. 2017-02-13 17:59:29 -08:00
pthread_mutex.cpp Add _monotonic_np versions of timed wait functions 2018-03-20 18:41:22 -07:00
pthread_once.cpp Use FUTEX_WAIT_BITSET to avoid converting timeouts. 2015-11-19 13:42:03 -08:00
pthread_rwlock.cpp Add _monotonic_np versions of timed wait functions 2018-03-20 18:41:22 -07:00
pthread_self.cpp
pthread_setname_np.cpp Be more strict about using invalid pthread_ts. 2017-02-13 17:59:29 -08:00
pthread_setschedparam.cpp Add pthread_setschedprio. 2017-10-17 09:14:05 -07:00
pthread_spinlock.cpp Implement pthread spin. 2015-11-18 17:51:21 -08:00
ptrace.cpp ptrace(3) should be varargs. 2014-07-16 16:07:10 -07:00
pty.cpp Add POSIX fexecve. 2017-10-18 16:26:17 -07:00
pututline.c libc should use O_CLOEXEC when opening files for its own use. 2014-08-26 15:56:54 -07:00
raise.cpp Make raise/abort work with stale cached pid/tid values. 2017-05-10 16:42:04 -07:00
rand.cpp Implement rand/srand in terms of random/srandom. 2014-07-14 12:02:22 -07:00
readlink.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
reboot.cpp
recv.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
rename.cpp
rmdir.cpp
scandir.cpp Implement scandirat and scandirat64. 2015-10-27 13:47:36 -07:00
sched_cpualloc.c bionic: fix assorted static analyzer warnings 2017-06-28 15:03:15 -07:00
sched_cpucount.c Type of second __sched_cpucount should be "const cpu_set_t*". 2018-04-13 16:07:21 -07:00
sched_getaffinity.cpp
sched_getcpu.cpp
semaphore.cpp Add _monotonic_np versions of timed wait functions 2018-03-20 18:41:22 -07:00
send.cpp Remove __overloadable/__RENAME_CLANG 2018-02-06 13:35:56 -08:00
setegid.cpp
seteuid.cpp
setjmp_cookie.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
setpgrp.cpp
sigaction.cpp Filter out reserved signals in functions that take sigset_t. 2018-02-27 14:12:30 -08:00
signal.cpp Filter out reserved signals in functions that take sigset_t. 2018-02-27 14:12:30 -08:00
sigprocmask.cpp Filter out reserved signals in functions that take sigset_t. 2018-02-27 14:12:30 -08:00
socket.cpp Mark sockets on creation (socket()) and accept4(). 2014-05-19 15:19:16 -07:00
spawn.cpp Add struct sigaction64 and sigaction64. 2018-02-01 14:45:15 -08:00
stat.cpp
statvfs.cpp Fix instances of '#if __LP64__'. 2016-09-15 14:21:28 -07:00
stdlib_l.cpp Move non-locale.h APIs out of locale.cpp. 2017-07-12 12:41:47 -07:00
strchr.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
strchrnul.cpp Add strchrnul. 2015-08-26 09:59:29 -07:00
strerror.cpp Allocate thread local buffers in __init_tls. 2017-02-22 16:05:03 -08:00
strerror_r.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
string_l.cpp Move non-locale.h APIs out of locale.cpp. 2017-07-12 12:41:47 -07:00
strings_l.cpp Move non-locale.h APIs out of locale.cpp. 2017-07-12 12:41:47 -07:00
strnlen.c
strrchr.cpp Remove outdated _FORTIFY_SOURCE #undefs 2017-07-21 11:25:52 -07:00
strsignal.cpp Allocate thread local buffers in __init_tls. 2017-02-22 16:05:03 -08:00
strtol.cpp Simplify atoi*/strto* for signed integers. 2017-12-21 17:44:22 -08:00
strtold.cpp Use __RENAME for long double functions. 2017-09-14 16:10:43 -07:00
swab.cpp Add POSIX swab. 2017-10-18 13:34:32 -07:00
symlink.cpp
sync_file_range.cpp Add sync_file_range to <fcntl.h>. 2016-04-05 12:17:22 -07:00
sys_epoll.cpp Add sigset64_t and accompanying functions. 2018-01-30 18:47:16 -08:00
sys_msg.cpp [mips64] Fix ipc syscalls 2016-09-09 12:24:04 +02:00
sys_sem.cpp [mips64] Fix ipc syscalls 2016-09-09 12:24:04 +02:00
sys_shm.cpp [mips64] Fix ipc syscalls 2016-09-09 12:24:04 +02:00
sys_siglist.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_signalfd.cpp Add sigset64_t and accompanying functions. 2018-01-30 18:47:16 -08:00
sys_signame.c Move <sys/_sigdefs.h> and <sys/_errdefs.h> to private. 2016-04-13 17:45:39 -07:00
sys_time.cpp Add futimes, futimesat, and lutimes. 2016-06-08 19:51:20 -07:00
sysconf.cpp Fix sysconf errno for unknown names. 2018-04-25 22:13:14 -07:00
sysinfo.cpp Fix overflow in get_phys_pages and get_avphys_pages. 2017-08-24 16:51:48 -07:00
syslog.cpp Move libc_log code into libasync_safe. 2017-05-03 08:50:43 -07:00
system.cpp Rewrite system(3) to use posix_spawn(3). 2018-03-05 17:20:12 -08:00
system_property_api.cpp Remove non-trivial constructors/destructors from SystemProperties 2018-02-21 15:10:17 -08:00
system_property_set.cpp Split properties into their own class to make testing better 2017-12-18 15:17:55 -08:00
tdestroy.cpp Finish <search.h>. 2017-08-31 17:38:51 -07:00
termios.cpp Make inline tcsetattr definition match constants. 2017-07-05 12:00:29 -07:00
thread_private.cpp Sync to current upstream arc4random. 2014-06-24 14:13:48 -07:00
time64.c Use snprintf instead of sprintf. 2014-10-07 11:28:47 -07:00
time64_config.h
tmpfile.cpp Implement <spawn.h>. 2017-10-11 14:57:49 -07:00
umount.cpp
unlink.cpp
vdso.cpp Clean up the time(2) implementation. 2018-01-12 15:20:28 -08:00
wait.cpp Removes wait3(2) from LP64. 2014-06-13 16:04:41 -07:00
wchar.cpp Hide various mbstate implementation details. 2017-07-14 17:00:05 -07:00
wchar_l.cpp Add remaining _l function stubs. 2018-02-13 23:14:12 -08:00
wcstod.cpp Add missing includes. 2017-10-11 11:25:52 -07:00
wctype.cpp Implement wcwidth(3) in terms of icu4c. 2017-07-27 17:08:24 -07:00
wcwidth.cpp Implement wcwidth(3) in terms of icu4c. 2017-07-27 17:08:24 -07:00
wmempcpy.cpp Add GNU extensions mempcpy and wmemcpy. 2015-02-18 22:02:56 -08:00