)]}'
{
  "log": [
    {
      "commit": "885f3b9cad01b8158aadc55c159c17dbf34f622c",
      "tree": "55991f909d2a12f185c0773de57cdf01b7074ecd",
      "parents": [
        "b7b4f5b838cd41407c734af74e8211f5c7da0036"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 21 17:48:01 2013 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 07 14:55:32 2013 -0700"
      },
      "message": "Implement malloc_usable_size for debug impls.\n\n- Implemented chk_memalign.\n- Fixed a few bugs in leak_memalign.\n- Implemented {leak,fill,check,qemu}_malloc_usable_size.\n- Make malloc_usable_size update at run time.\n- Add malloc_test.cpp as a small set of tests for the\n  malloc debug routines.\n- Fix the qemu routines since it\u0027s been broken since it moved to C++.\n- Add support for the %u format to the out_vformat in libc_logging.cpp.\n  This is used by the emulator code.\n\nTested using the bionic-unit-tests with setprop libc.debug.malloc\nset to 1, 5, and 10.\n\nI tested as much as possible on the emulator, but tracing doesn\u0027t appear\nto be working properly.\n\nBug: 6143477\n\nMerge change from internal master.\n\n(cherry-picked from commit 3d594c258045783fc9e1956ce7a4d91e302f011e)\n\nChange-Id: I4ae00fffba82315a8c283f35893fd554460722fb\n"
    },
    {
      "commit": "25a87f7641f066437d15c6d3148d08a6ab9be231",
      "tree": "3262eadfdc8af97fdd9380d12ed4f53c185aefc5",
      "parents": [
        "f5f29de6ae5a0b74234f111b5691a1e5588671cb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu May 23 10:02:02 2013 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Thu May 23 10:02:02 2013 +0200"
      },
      "message": "Fix declaration of malloc_usable_size()\n\nThe function should take a \u0027const void*\u0027 parameter, instead of \u0027void*\u0027.\nNote that the implementation in upstream-dlmalloc/malloc.c already does\nthis.\n\nFor context, see http://b.android.com/55725\n\nChange-Id: Iefd55cdb8996699189e0545f9195972490306227\n"
    },
    {
      "commit": "ea489745dcc7c116259b63f0353dc482aa4fe2cd",
      "tree": "802181aa6a3d4fc74cecab4ed2d144fa5e9094b3",
      "parents": [
        "ed36d95fac5881f78a601e2932f51edfd27c6ba6"
      ],
      "author": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Apr 12 16:13:34 2013 +0800"
      },
      "committer": {
        "name": "Kito Cheng",
        "email": "kito@0xlab.org",
        "time": "Fri Apr 12 16:34:38 2013 +0800"
      },
      "message": "Use hidden visibility for internal-use-only functions\n\n - malloc_debug_init and malloc_debug_fini\n\nChange-Id: I4261ff428a50d8f0371415cda71bcc0a9487ce67\n"
    },
    {
      "commit": "8f2a5a0b40fc82126c691d5c30131d908772aab7",
      "tree": "0b29a5dc82395c076387edb5af9ca271a91264c0",
      "parents": [
        "e23ed8c6441389a79c6504295184f7249e01a197"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 15:30:25 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 15 16:12:58 2013 -0700"
      },
      "message": "Clean up internal libc logging.\n\nWe only need one logging API, and I prefer the one that does no\nallocation and is thus safe to use in any context.\n\nAlso use O_CLOEXEC when opening the /dev/log files.\n\nMove everything logging-related into one header file.\n\nChange-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58\n"
    },
    {
      "commit": "e4ccf5a138a9c6387ee2e4b8e41d628e0a2cc336",
      "tree": "adffd90b54d462c0e48c47c234d16025614a5fec",
      "parents": [
        "2f41531ff9f48dbdaf2ba711e14c669031728e99"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 12:06:44 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 07 12:06:44 2013 -0800"
      },
      "message": "__progname should be const char*, not char*.\n\nChange-Id: I8e846872c30a712fbc05c8da59ffa1cec1be31a4\n"
    },
    {
      "commit": "9c81892c2e8c684e0da12028e389bf6d9b5253b7",
      "tree": "a6a5f54863bcf4467ce2cc27d9cf669120b35c39",
      "parents": [
        "1bf835558a3f7424c805766250ace88fa70e0630"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 17:07:40 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 01 17:07:40 2013 -0800"
      },
      "message": "Don\u0027t claim there were no leaks if we weren\u0027t even checking.\n\nBug: 8107016\nChange-Id: I9059f1f8374ebcdf00dfc6ac74d3709f501292c9\n"
    },
    {
      "commit": "239e7a0756fddf3698bf72cab10d7f382421090b",
      "tree": "6ec3636787883bf1b20bd490cc011110b625d3fe",
      "parents": [
        "6a94cb748bf63278c3271b0ab610061b0dc6f04a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 25 17:13:45 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 25 17:13:45 2013 -0800"
      },
      "message": "More debug malloc fixes.\n\nInclude the leaky executable\u0027s name in the log output. Fix the \"sh\" test.\nUse uintptr_t instead of intptr_t.\n\nAlso fix debug formatting of NULL with %s.\n\nBug: 7291287\nChange-Id: I015bf341cd48d43a247173612e6ccb1bf1243d53\n"
    },
    {
      "commit": "84f8b5f4013c5df372ad97f3f98ea27ac6064a97",
      "tree": "dad43f1df94b4888342ae7aa5ce365c1c48f9956",
      "parents": [
        "28f82b260c9076aae437dafb57193a174aef1eb3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 22 18:35:14 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 22 18:35:14 2013 -0800"
      },
      "message": "Disable leak checking for mksh; it\u0027s way too leaky.\n\nWhen each shell leaks ~240 allocations, you can\u0027t see the leaks from\nthe program you ran with \"adb shell\".\n\nBug: 7291287\nChange-Id: Ib8780db72ba0114ebdb24768537da74bbb61f354\n"
    },
    {
      "commit": "1e980b6bc8315d00a07312b25486531247abd98c",
      "tree": "539f2c0c63fca27d5eb6ba184d658bb0e11a32d9",
      "parents": [
        "e4ca88d9fa8757e4fb4056fcafa5bc15b406a2fd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 17 18:36:06 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 18 22:20:06 2013 -0800"
      },
      "message": "Fix the duplication in the debugging code.\n\nWe had two copies of the backtrace code, and two copies of the\nlibcorkscrew /proc/pid/maps code. This patch gets us down to one.\n\nWe also had hacks so we could log in the malloc debugging code.\nThis patch pulls the non-allocating \"printf\" code out of the\ndynamic linker so everyone can share.\n\nThis patch also makes the leak diagnostics easier to read, and\nmakes it possible to paste them directly into the \u0027stack\u0027 tool (by\nusing relative PCs).\n\nThis patch also fixes the stdio standard stream leak that was\ncausing a leak warning every time tf_daemon ran.\n\nBug: 7291287\nChange-Id: I66e4083ac2c5606c8d2737cb45c8ac8a32c7cfe8\n"
    },
    {
      "commit": "db492b3ca753c4ef688d0daf648294de0c89145e",
      "tree": "aed7c4b15968d65c06e2d9ac6184153e611bf2d4",
      "parents": [
        "b1b5317799a34ac9e93f568af82952e52a9e9a13"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 03 15:44:03 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 03 15:44:03 2013 -0800"
      },
      "message": "Fix debug malloc.\n\n...which has been broken since the linker data structures went read-only.\n\nBug: 7941716\nChange-Id: If28f6bac0fcb13e371e4d85b064544f561c8d692\n"
    },
    {
      "commit": "3b297c40794b23d50cb5240f9b03f6ef25fd98db",
      "tree": "ebcb95b3cd9f249f08257e8654307f88c98e6dbb",
      "parents": [
        "417fd2334a694cf6a831b81cd672b4ca31ff2f54"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 11 16:08:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 11 16:08:51 2012 -0700"
      },
      "message": "Fix dlerror(3).\n\nAdd unit tests for dlerror(3) in various situations. I think We\u0027re at least\nas good as glibc now.\n\nAlso factor out the ScopedPthreadMutexLock and use it here too.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d38398\nChange-Id: I040938b4366ab836e3df46d1d8055b92f4ea6ed8\n"
    },
    {
      "commit": "e5d5f7f0d8262178f9f69e78e3a4fbd71a34853c",
      "tree": "33b0ffcca7b1f85ef0f05196f590d7660ee02e7a",
      "parents": [
        "9a7366e8943990619c494548050aa906f1971332"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 17:23:09 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 09 17:23:09 2012 -0700"
      },
      "message": "Fix two comment typos.\n\nChange-Id: Icb2d6f7fa97ef5a4409a7606875e416cfab0a4b3\n"
    },
    {
      "commit": "c4d1fecc105063e68a5090a6900b63d1b9a24287",
      "tree": "93dad687b245a981d3c47ede05b43345b86202fe",
      "parents": [
        "9dfaa63a1c0d1b8e75dd9d7077a8103a19821fa9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 28 14:15:04 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 29 12:08:13 2012 -0700"
      },
      "message": "Clean up warnings in the malloc_debug_* files.\n\nAlso clean up cpplint.py-detected lint.\n\nChange-Id: Ia18e89c4c6878764f8d7ed34b8247e7a8d8fe88b\n"
    },
    {
      "commit": "bfc1d97531fa611ad2705c7179134b60e652ead4",
      "tree": "f03805631b280765892519eea1093afc663f3fc9",
      "parents": [
        "999089181ef60bb67e1a49f2cf6f4ec608a7caf8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 20 18:28:20 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 19:25:39 2012 -0700"
      },
      "message": "Restore posix_memalign\n\nChange-Id: I24e31bcb8b1d8be9375852e76964f09becd11938\n"
    },
    {
      "commit": "999089181ef60bb67e1a49f2cf6f4ec608a7caf8",
      "tree": "68b426388adc78040949e65282fd623d08b7644d",
      "parents": [
        "9417a80e48d3bba4bea814178aaa79b905ebab8c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 17 17:28:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 14:12:20 2012 -0700"
      },
      "message": "Upgrade to dlmalloc 2.8.5.\n\nMove dlmalloc code to upstream-dlmalloc to make pulling upstream changes\neasier.\nDeclare pvalloc and malloc_usable_size routines present in malloc.h but with\nmissing implementations. Remove other functions from malloc.h that have\nno implementation nor use in Android.\n\nChange-Id: Ia6472ec6cbebc9ad1ef99f4669de9d33fcc2efb4\n"
    },
    {
      "commit": "e1dd3c287ba836281de0197670018bd9bbfbd62b",
      "tree": "a5138cb21c8de6be4ea4be61e44f95fb8bcb776e",
      "parents": [
        "7d2e24eb167b6257f7935c7bd2023a708704ca1a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 14:22:42 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Jun 01 15:54:34 2012 -0700"
      },
      "message": "bionic: import heaptracker as chk_malloc\n\nThis patch is a rewrite of libc.debug.malloc \u003d 10 (chk_malloc).  It provides\nthe same features as the original (poison freed memory, detect heap overruns\nand underruns), except that it provides more debugging information whenever it\ndetects a problem.\n\nIn addition to the original features, the new chk_malloc() implementation\ndetects multiple frees within a given range of the last N allocations, N being\nconfigurable via the system property libc.debug.malloc.backlog.\n\nFinally, this patch keeps track of all outstanding memory allocations.  On\nprogram exit, we walk that list and report each outstanding allocation.\n\n(There is support (not enabled) for a scanner thread periodically walks over\nthe list of outstanding allocations as well as the backlog of recently-freed\nallocations, checking for heap-usage errors.)\n\nFeature overview:\n\n  1) memory leaks\n  2) multiple frees\n  3) use after free\n  4) overrun\n\nImplementation:\n\n-- for each allocation, there is a:\n  1) stack trace at the time the allocation is made\n  2) if the memory is freed, there is also a stack trace at the point\n  3) a front and rear guard (fence)\n  4) the stack traces are kept together with the allocation\n\n-- the following lists and maintained\n\n  1) all outstanding memory allocations\n  3) a backlog of allocations what are freed; when you call free(), instead of\n     actually freed, the allocation is moved to this backlog;\n  4) when the backlog of allocations gets full, the oldest entry gets evicted\n     from it; at that point, the allocation is checked for overruns or\n     use-after-free errors, and then actually freed.\n  5) when the program exits, the list of outstanding allocations and the\n     backlog are inspected for errors, then freed;\n\nTo use this, set the following system properties before running the process or\nprocesses you want to inspect:\n\nlibc.malloc.debug.backlog # defaults to 100\nlibc.malloc.debug 10\n\nWhen a problem is detected, you will see the following on logcat for a multiple\nfree:\n\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 BYTES MULTIPLY FREED!\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 4009647c  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 FIRST FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096490  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9278 SIZE 10 NOW BEING FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c6ac  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964a0  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a heap overrun and underrun:\n\nE/libc    ( 7233): +++ REAR GUARD MISMATCH [10, 11)\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 HAS A CORRUPTED REAR GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096438  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9198 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 40096462  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 HAS A CORRUPTED FRONT GUARD\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964ba  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\nE/libc    ( 7233): +++ ALLOCATION 0x404b9358 SIZE 10 FREED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c7d2  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d94  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 400964e4  /system/bin/malloctest\nE/libc    ( 7233):      #04  pc 00016f24  /system/lib/libc.so\n\nThe following for a memory leak:\n\nE/libc    ( 7233): +++ THERE ARE 1 LEAKED ALLOCATIONS\nE/libc    ( 7233): +++ DELETING 4096 BYTES OF LEAKED MEMORY AT 0x404b95e8 (1 REMAINING)\nE/libc    ( 7233): +++ ALLOCATION 0x404b95e8 SIZE 4096 ALLOCATED HERE:\nE/libc    ( 7233): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\nE/libc    ( 7233):      #00  pc 0000c35a  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #01  pc 0000c658  /system/lib/libc_malloc_debug_leak.so\nE/libc    ( 7233):      #02  pc 00016d80  /system/lib/libc.so\nE/libc    ( 7233):      #03  pc 0001bc94  /system/lib/libc.so\nE/libc    ( 7233):      #04  pc 0001edf6  /system/lib/libc.so\nE/libc    ( 7233):      #05  pc 0001b80a  /system/lib/libc.so\nE/libc    ( 7233):      #06  pc 0001c086  /system/lib/libc.so\nE/libc    ( 7233):      #07  pc 40096402  /system/bin/malloctest\nE/libc    ( 7233):      #08  pc 00016f24  /system/lib/libc.so\n\nChange-Id: Ic440e9d05a01e2ea86b25e8998714e88bc2d16e0\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "7d2e24eb167b6257f7935c7bd2023a708704ca1a",
      "tree": "827446ee24c7175462c76278a56db005233bbcaf",
      "parents": [
        "03539a36b634bdfa61c06277cf25e0ca8e3105ba"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 29 16:46:17 2012 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed May 30 20:03:47 2012 -0700"
      },
      "message": "bionic: introduce libc.debug.malloc.program\n\nlibc.debug.malloc.program  provides an additional level of control over which\nprocesses to enable libc.debug.malloc functionality for.  The string value of\nlibc.debug.malloc.program is matched against the program name; if the value of\nlibc.debug.malloc.program is a substring of the program name, then malloc debug\nis applied to that program at whatever level libc.debug.malloc specifies.\n\nIf lib.debug.malloc.program is not specified, then libc.debug.malloc has the\nsame effect as before.\n\nFor example, to enable libc.deubug.malloc \u003d 10 only to the mediaserver, do the\nfollowing:\n\n   adb root # necessary for setprop\n   adb setprop libc.debug.malloc.program mediaserver\n   adb setprop libc.debug.malloc 10\n   adb kill -9 $(pid mediaserver)\n\nChange-Id: I6f01c12f033c8e2e015d73025369d7f1685ba200\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "0f5587097bf2b27e13434b23f61a562816fe7649",
      "tree": "20947d0856d639548dfdd2751f048b76c4ba48ee",
      "parents": [
        "5a6f593b6197b96f980d9d45f9a981ef8705caf4"
      ],
      "author": {
        "name": "Christopher Schwardt",
        "email": "nookieman@gmx.de",
        "time": "Tue Mar 22 15:35:40 2011 +0100"
      },
      "committer": {
        "name": "Christopher Schwardt",
        "email": "nookieman@gmx.de",
        "time": "Tue Mar 22 15:35:40 2011 +0100"
      },
      "message": "removing shadowing redeclaration of result\n\nChange-Id: Ic1f86962dfb8620cf5c63ff4913b2f0bf908abb5\n"
    },
    {
      "commit": "9d8be5485c366b4f579bef0b88a4c99b899f21e1",
      "tree": "9ffa7d64f6896681d17944af40ed29d3050827fd",
      "parents": [
        "abdb3695b21631ace52123fbe68f86fa4476a4b0"
      ],
      "author": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Tue Oct 05 13:06:06 2010 -0700"
      },
      "committer": {
        "name": "tedbo",
        "email": "tedbo@google.com",
        "time": "Tue Oct 05 13:23:28 2010 -0700"
      },
      "message": "get_malloc_leak_info: Fix assumption that totalMemory out parameter was initialized to zero.\n\nThe get_malloc_leak_info() currently asssumes that the totalMemory out parameter\nwas pre-initialized to zero before the routine is called. If it is not then the\naccumulated totalMemory value will be incorrect. It is likely that many callers\nwill simply allocate totalMemory on the stack with no initialization and assume\nthat get_malloc_leak_info will set the proper value.\n\nAs an example, the caller in frameworks/base/core/jni/android_os_Debug.cpp\ncalls get_malloc_leak_info() with the address uninitiazed stack variable\nfor totalMemory. It is probably best to fix this in get_malloc_leak_info.\n\nChange-Id: I84c927c3781419585794726115b7d34d8fdd24ae\n"
    },
    {
      "commit": "52e7d3d91ab6a5bab77c5dfb1ed47381fd52f9ba",
      "tree": "95fd304d94292f13851cd4590e89a0b6acb3a297",
      "parents": [
        "18c5bcc66a9a7b2178dcdcf04a0716958798ab81"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 09 13:43:46 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 09 13:43:46 2010 -0700"
      },
      "message": "Bulletproof leak dump against null hash entries\n\nPreviously, the malloc leak checking code would crash in qsort()\nif null entries existed in its bookkeeping table.  This change\nmakes the comparison function detect null entries and sort them\nto the end safely.\n\nChange-Id: I88244a7df1e289dd9d7992ce29606d505bd63079\n"
    },
    {
      "commit": "95faecefdea0f55edafdba09052a904df7cd2405",
      "tree": "953a43567de93a20f4074a0617292e799f9915ab",
      "parents": [
        "f1cd18bdec3686c072bc10cbf66e671b07fc4fde",
        "350bb359fa5e31e3dfae8be6b1ce7ee3495f0da7"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 08 11:11:53 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 08 11:11:53 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: If77618a329fc7b497c44c2585e644bc50e7e1406\n"
    },
    {
      "commit": "75fba6888a1e5738f8255f3511c4ad40cbcc0eda",
      "tree": "de49c9233770c63324539012655792937875a5c2",
      "parents": [
        "5c734644eebf8d01be1e86cbe20a111a5c5a2738"
      ],
      "author": {
        "name": "Vladimir Chtchetkine",
        "email": "vchtchetkine@google.com",
        "time": "Fri Feb 12 08:59:58 2010 -0800"
      },
      "committer": {
        "name": "Vladimir Chtchetkine",
        "email": "vchtchetkine@google.com",
        "time": "Tue Feb 16 11:43:18 2010 -0800"
      },
      "message": "Merge memory checking functionality from sandbox\n\nChange-Id: I304c789a752c9f4af4944ca14b9bf1e7644da15a\n"
    },
    {
      "commit": "b74ceb25aae555570df64fa4d4076272733a9a20",
      "tree": "3bf49e716722b67f4b0f0bcb391156bf29fa6ad0",
      "parents": [
        "e8870ffc965d553a885f63b26e724da279728b72"
      ],
      "author": {
        "name": "Vladimir Chtchetkine",
        "email": "vchtchetkine@google.com",
        "time": "Tue Nov 17 14:13:38 2009 -0800"
      },
      "committer": {
        "name": "Vladimir Chtchetkine",
        "email": "vchtchetkine@google.com",
        "time": "Wed Nov 18 10:36:25 2009 -0800"
      },
      "message": "Split libc_debug.so into two .so modules loaded on demand from libc.so\n\nThis change is intended to eliminate need to replace libc.so with libc_debug.so in order to enablememory allocation debugging.\nThis is also the first step towards implementing extended memoryallocation debugging using emulator\u0027s capabilities in monitoring memory access.\n"
    }
  ]
}
