885f3b9cad01b8158aadc55c159c17dbf34f622c |
|
22-May-2013 |
Christopher Ferris <cferris@google.com> |
Implement malloc_usable_size for debug impls. - Implemented chk_memalign. - Fixed a few bugs in leak_memalign. - Implemented {leak,fill,check,qemu}_malloc_usable_size. - Make malloc_usable_size update at run time. - Add malloc_test.cpp as a small set of tests for the malloc debug routines. - Fix the qemu routines since it's been broken since it moved to C++. - Add support for the %u format to the out_vformat in libc_logging.cpp. This is used by the emulator code. Tested using the bionic-unit-tests with setprop libc.debug.malloc set to 1, 5, and 10. I tested as much as possible on the emulator, but tracing doesn't appear to be working properly. Bug: 6143477 Merge change from internal master. (cherry-picked from commit 3d594c258045783fc9e1956ce7a4d91e302f011e) Change-Id: I4ae00fffba82315a8c283f35893fd554460722fb
|
3d594c258045783fc9e1956ce7a4d91e302f011e |
|
22-May-2013 |
Christopher Ferris <cferris@google.com> |
Implement malloc_usable_size for debug impls. - Implemented chk_memalign. - Fixed a few bugs in leak_memalign. - Implemented {leak,fill,check,qemu}_malloc_usable_size. - Make malloc_usable_size update at run time. - Add malloc_test.cpp as a small set of tests for the malloc debug routines. - Fix the qemu routines since it's been broken since it moved to C++. - Add support for the %u format to the out_vformat in libc_logging.cpp. This is used by the emulator code. Tested using the bionic-unit-tests with setprop libc.debug.malloc set to 1, 5, and 10. I tested as much as possible on the emulator, but tracing doesn't appear to be working properly. Bug: 6143477 Change-Id: Ieba99b58c2228c88d80afd264501004a4dadd212
|
8f2a5a0b40fc82126c691d5c30131d908772aab7 |
|
15-Mar-2013 |
Elliott Hughes <enh@google.com> |
Clean up internal libc logging. We only need one logging API, and I prefer the one that does no allocation and is thus safe to use in any context. Also use O_CLOEXEC when opening the /dev/log files. Move everything logging-related into one header file. Change-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58
|
9c81892c2e8c684e0da12028e389bf6d9b5253b7 |
|
02-Feb-2013 |
Elliott Hughes <enh@google.com> |
Don't claim there were no leaks if we weren't even checking. Bug: 8107016 Change-Id: I9059f1f8374ebcdf00dfc6ac74d3709f501292c9
|
1d12d574169cedd68185196e4957597d00fd4681 |
|
30-Jan-2013 |
Elliott Hughes <enh@google.com> |
Say explicitly if there were no leaks. Otherwise people trying to use this are left wondering "did I not leak, or did the leak checking code not get called when I exited?". Change-Id: If79b225f8a2e24dd69aba1fb836bf9e81bb00efe
|
35b621c5f4c79959cd36fec0153c2c9c43ebe5f0 |
|
29-Jan-2013 |
Elliott Hughes <enh@google.com> |
Don't collect useless stack frames; do demangle C++ symbols. Previously, we'd collect every stack frame and then throw some away when we came to log them. This meant that stack traces were effectively shorter than the buffers that had been allocated for them. This patch only stores frames we'll actually output. Also dynamically call the C++ demangler so we don't have to try to read mangled names. Because no one knows the mangling of operator new[] for int arrays off the top of their head. Bug: 7291287 Change-Id: I42b022fd7cd61675d05171de4c3b2704d058ef2a
|
239e7a0756fddf3698bf72cab10d7f382421090b |
|
26-Jan-2013 |
Elliott Hughes <enh@google.com> |
More debug malloc fixes. Include the leaky executable's name in the log output. Fix the "sh" test. Use uintptr_t instead of intptr_t. Also fix debug formatting of NULL with %s. Bug: 7291287 Change-Id: I015bf341cd48d43a247173612e6ccb1bf1243d53
|
848247a972038e30e12b0c9f7f049aa97c73b9c7 |
|
23-Jan-2013 |
Elliott Hughes <enh@google.com> |
Don't free anything when reporting leaks. We don't know that they're not going to be cleaned up by a C++ global destructor that runs after us. This is the case with bootanimation, for example. Bug: 7291287 Change-Id: Iba402514d1735fdc2ae4bc95b65396d816be46c0
|
1e980b6bc8315d00a07312b25486531247abd98c |
|
18-Jan-2013 |
Elliott Hughes <enh@google.com> |
Fix the duplication in the debugging code. We had two copies of the backtrace code, and two copies of the libcorkscrew /proc/pid/maps code. This patch gets us down to one. We also had hacks so we could log in the malloc debugging code. This patch pulls the non-allocating "printf" code out of the dynamic linker so everyone can share. This patch also makes the leak diagnostics easier to read, and makes it possible to paste them directly into the 'stack' tool (by using relative PCs). This patch also fixes the stdio standard stream leak that was causing a leak warning every time tf_daemon ran. Bug: 7291287 Change-Id: I66e4083ac2c5606c8d2737cb45c8ac8a32c7cfe8
|
e7e274b13a44a63023f22630ac282ee2e919ffb7 |
|
13-Oct-2012 |
Elliott Hughes <enh@google.com> |
Fix realloc(3) when chk_malloc debugging is on. The tests for a NULL pointer and size 0 were the wrong way round. From Intel's patch 9cae4f2ffc4778ed82be04711d8775a84092d4e2. Change-Id: I118aff3358aa5f34126d74bfaa43f6e2f1a89055
|
3b297c40794b23d50cb5240f9b03f6ef25fd98db |
|
12-Oct-2012 |
Elliott Hughes <enh@google.com> |
Fix dlerror(3). Add unit tests for dlerror(3) in various situations. I think We're at least as good as glibc now. Also factor out the ScopedPthreadMutexLock and use it here too. Bug: http://code.google.com/p/android/issues/detail?id=38398 Change-Id: I040938b4366ab836e3df46d1d8055b92f4ea6ed8
|
c4d1fecc105063e68a5090a6900b63d1b9a24287 |
|
28-Aug-2012 |
Elliott Hughes <enh@google.com> |
Clean up warnings in the malloc_debug_* files. Also clean up cpplint.py-detected lint. Change-Id: Ia18e89c4c6878764f8d7ed34b8247e7a8d8fe88b
|