android_system_core/libbacktrace
Hans Boehm 9d3146af22 Prepare to fail in RefBase destructor if count is untouched
Move towards crashing if a normally configured RefBase object is
destroyed without ever incrementing the reference count. We've been
threatening to do this for a long time. The previously last known
violation had been fixed.

This also fixes stack trace printing from RefBase, which had previously
been broken, and which we found necessary to track down further
violations of this rule.

Unfortunately, we found several more violations with the aid of
that fix. After existing CLs are submitted, there are
still some failures, but they are no longer numerous. Thus this CL
doesn't actually crash in the event of a violation, but does log a
verbose stack trace if it encounters one.

Bugs have been filed against the remaining known RefBase client offenders.
We plan to enable crashing on usage violations once those are fixed.

The fix for the stack trace printing breakage unfortunately requires
the use of weak symbols in order to avoid a circular build dependency.
We expect to eventually replace this with execinfo.h functionality.

Some random reformatting, driven by consistency with current formatting
requirements.

Add missing include to BacktraceMap.h.

Bug: 79112958
Bug: 30292291
Test: Boot AOSP, Master
Change-Id: I8151c54560c3b6f75ffc4c48229f0388a2066958
2018-08-03 17:56:47 -07:00
..
include/backtrace Prepare to fail in RefBase destructor if count is untouched 2018-08-03 17:56:47 -07:00
testdata Use new unwinder for offline in libbacktrace. 2018-01-29 10:41:11 -08:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
Android.bp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
Backtrace.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
backtrace_benchmarks.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
backtrace_offline_test.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
backtrace_read_benchmarks.cpp Add method to detect remote read function to use. 2017-12-07 19:00:00 -08:00
backtrace_test.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
backtrace_testlib.cpp Use new unwinder for offline in libbacktrace. 2018-01-29 10:41:11 -08:00
backtrace_testlib.h Use new unwinder for offline in libbacktrace. 2018-01-29 10:41:11 -08:00
BacktraceAsyncSafeLog.h Use async safe logging in signal handlers. 2017-05-04 17:15:17 -07:00
BacktraceCurrent.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
BacktraceCurrent.h Use new unwinder for offline in libbacktrace. 2018-01-29 10:41:11 -08:00
BacktraceLog.h liblog: use log/log.h when utilizing ALOG macros 2017-01-11 09:31:15 -08:00
BacktraceMap.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
BacktracePtrace.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
BacktracePtrace.h Change all uintptr_t to uint64_t in API. 2018-01-18 17:26:20 -08:00
GetPss.cpp Fix misc-macro-parentheses warnings in adb, debuggerd, libbacktrace. 2016-05-18 15:53:15 -07:00
GetPss.h Create an UnwindMapLocal object. 2014-04-03 14:19:24 -07:00
OWNERS Add OWNERS. 2017-12-07 13:30:03 -08:00
ThreadEntry.cpp Use async safe logging in signal handlers. 2017-05-04 17:15:17 -07:00
ThreadEntry.h Allow calling GetFunctionName before unwinding. 2017-03-21 14:21:49 -07:00
UnwindMap.cpp Change all uintptr_t to uint64_t in API. 2018-01-18 17:26:20 -08:00
UnwindMap.h Change all uintptr_t to uint64_t in API. 2018-01-18 17:26:20 -08:00
UnwindStack.cpp Move libbacktrace off cutils. 2018-07-11 13:55:07 -07:00
UnwindStack.h Use new unwinder for offline in libbacktrace. 2018-01-29 10:41:11 -08:00
UnwindStackMap.cpp Add a MemoryOfflineBuffer object. 2018-04-03 18:37:52 -07:00
UnwindStackMap.h Add a MemoryOfflineBuffer object. 2018-04-03 18:37:52 -07:00