Commit Graph

9 Commits

Author SHA1 Message Date
Colin Cross a9939e9a23 Move libmemunreachable into namespace android
Putting libmemunreachable in the global C++ namespace was an oversight,
move it into namespace android.

Test: m -j checkbuild
Change-Id: I0799906f6463178cb04a719bb4054cad33a50dbe
2017-06-22 10:58:23 -07:00
Colin Cross a83881e33c libmemunreachable: clang-format everything
clang-format -i --sort-includes $(find . -name "*.cpp" -o -name "*.h")

Test: builds
Change-Id: Ia8e0677fe7f3f26dddba3a851cd2dfab9f14e421
2017-06-22 10:58:05 -07:00
Colin Cross 72d3881412 Add a helpful error message if GetUnreachableMemory fails
The primary reason for GetUnreachableMemory failing is selinux
blocking system apps from ptracing themselves.  Add a helpful
error message suggesting setenforce 0.

Bug: 27945735
Test: dumpsys meminfo --unreachable com.android.systemui
Change-Id: Ibfa9507860be36dffd514f82027f7a2f8a72ac48
2017-06-15 10:57:37 -07:00
Christopher Ferris 47dea71b16 Move all logging to use the async safe logging.
Also, add a link to the .clang-format-2 for this directory and clang
format the files that changed.

Bug: 31919199

Test: Boot bullhead.
Test: Run unit tests on bullhead. There are a few that fail, but they
Test: failed before and are not a result of this change.
Change-Id: I3d3b2111f6f6bf8a0d7039295d34d5168c191651
2017-05-03 18:04:18 -07:00
Colin Cross 11185af983 Add ABI to leak report
Add the ABI to the leak report so that it can be piped through
development/scripts/stack.

Bug: 27208635
Change-Id: I2e050a377305d48d2f904f34ea921f64e13dd00e
2016-03-04 22:40:34 -08:00
Colin Cross 7a22e81c20 Combine leaks with same stacktrace
Combine similar leaks (those with identical stack traces) into a single
leak report, and sort the resulting leaks by total leak size across all
similar leaks and their references.

Bug: 27208635
Change-Id: Ia2bf2ccf3fcbc110d1c7ba60e3b77348d1c63d8d
2016-03-04 22:40:34 -08:00
Colin Cross 8e8f34c558 Fold leaks that are referenced by other leaks
Find leaks that have no references at all, or are only referenced by
other leaks in the same strongly connected component, and hide all
referenced leaks.

Bug: 27208635
Change-Id: Ifbfd14e24e2ba0f8af7c1b887e57f34362720f2d
2016-03-04 16:39:59 -08:00
Colin Cross de42af013f libmemunreachable: fix long timeout on error
The collection thread should unblock the parent when it fails in order
to prevent a 100 second timeout delay.  Also reduce the timeout to 30
seconds, and fix a few log messages.

Bug: 27208635
Change-Id: I47f9ce4f645c453810fec57bef557c32a665eefb
(cherry picked from commit b1b7923efe)
2016-02-19 14:06:13 -08:00
Colin Cross 7add50d820 imprecise mark and sweep native memory leak detector
libmemunreachable uses an imprecise mark and sweep pass over all memory
allocated by jemalloc in order to find unreachable allocations.

Bug: 27208635
Change-Id: Ia70bbf31f5b40ff71dab28cfd6cd06c5ef01a2d4
(cherry picked from commit bcb4ed3eaa)
2016-02-19 00:49:36 -08:00