)]}'
{
  "log": [
    {
      "commit": "aa7d835fdd739881a907ac5c8a89a5dae01f6089",
      "tree": "d85b4086e7cd0aedd28a071d5e1899f62b73695d",
      "parents": [
        "d29cac66b426d59afd7ce7da9519b6d43f5df0cc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 13:06:22 2021 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 19 23:38:28 2021 +0000"
      },
      "message": "Add LOCAL_LICENSE_KINDS to bionic\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  apex/Android.bp\n  libdl/Android.bp\n  tools/Android.bp\n  tools/versioner/Android.bp\n  tools/versioner/src/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  benchmarks/Android.bp\n  benchmarks/linker_relocation/gen/Android.bp\n  libc/malloc_debug/Android.bp\n  libc/system_properties/Android.bp\n  tests/Android.bp\n  tests/libs/Android.bp\n  tests/libs/Android.build.dlext_testzip.mk\n  tests/make_fortify_compile_test.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-ISC SPDX-license-identifier-MIT\n    legacy_notice legacy_unencumbered\nto:\n  libc/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT legacy_unencumbered\nto:\n  libm/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_unencumbered\nto:\n  libc/tools/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  benchmarks/linker_relocation/Android.bp\n  benchmarks/spawn/Android.bp\n  libc/async_safe/Android.bp\n  libc/malloc_hooks/Android.bp\n  libfdtrack/Android.bp\n  linker/Android.bp\n  tests/headers/Android.bp\n  tests/headers/posix/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\nExempt-From-Owner-Approval: janitorial work\nChange-Id: Ib05bcaa276b3aa71a7654ccbe8e67e1f16aec9f3\n"
    },
    {
      "commit": "5e44c22ebf717d59423803e9f9e4aff586fee72f",
      "tree": "0f1e1eac8db14d78a10e31b7d2b97fcc92a5b40f",
      "parents": [
        "48d43034d7b5a419ba56f052856696d53a7bd979"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:02:47 2021 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 16 20:02:47 2021 +0000"
      },
      "message": "Revert \"[LSC] Add LOCAL_LICENSE_KINDS to bionic\"\n\nThis reverts commit 48d43034d7b5a419ba56f052856696d53a7bd979.\n\nReason for revert: bionic is multiple projects, not just one.\n\nChange-Id: Ib31e1bb8888cc85c6e7736c4e2a1d4652fd23935\n"
    },
    {
      "commit": "48d43034d7b5a419ba56f052856696d53a7bd979",
      "tree": "4a958f90512dcd1cec534d0dbdb1de4ebb6a8678",
      "parents": [
        "ef0ec82684ea52ee3a13db8df9103ca314ea17aa"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 17:51:24 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 17:51:24 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to bionic\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  libdl/Android.bp\n  tools/versioner/src/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  benchmarks/Android.bp\n  libc/malloc_debug/Android.bp\n  libc/system_properties/Android.bp\n  linker/Android.bp\n  tests/Android.bp\n  tests/libs/Android.bp\n  tests/libs/Android.build.dlext_testzip.mk\n  tests/make_fortify_compile_test.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-ISC SPDX-license-identifier-MIT\n    legacy_notice legacy_unencumbered\nto:\n  Android.bp\n  libc/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-ISC SPDX-license-identifier-MIT\n    legacy_unencumbered\nto:\n  tools/Android.bp\n  tools/versioner/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-MIT legacy_unencumbered\nto:\n  libm/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 legacy_unencumbered\nto:\n  libc/tools/Android.bp\n\nAdded SPDX-license-identifier-BSD\nto:\n  benchmarks/linker_relocation/Android.bp\n  benchmarks/spawn/Android.bp\n  libc/async_safe/Android.bp\n  libc/malloc_hooks/Android.bp\n  libfdtrack/Android.bp\n  tests/headers/Android.bp\n  tests/headers/posix/Android.bp\n\nAdded legacy_notice\nto:\n  apex/Android.bp\n  benchmarks/linker_relocation/gen/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I76cad00578b9b99180ee5dd1e04b4646d5c5fedf\n"
    },
    {
      "commit": "9bf7817dd29d15ea49c88436db4067d87fc7e6c4",
      "tree": "83df3be7fc9aa5b879d22b9db6361baf7c83c17f",
      "parents": [
        "ba198d508497ffeb146d61c5ec5fb66d84e864f3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 20 15:37:30 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 20 18:18:54 2020 -0700"
      },
      "message": "Fix deadlock/timeout in thread unwinding.\n\nWhen malloc debug is enabled, using libbacktrace to unwind can\nresult in a deadlock. This happens when an unwind of a thread\nis occuring which triggers a signal to be sent to that thread. If\nthat thread is interrupted while a malloc debug function is\nexecuting and owns a lock, that thread is then stuck in the signal\nhandler. Then the original unwinding thread attempts to do an\nallocation and gets stuck waiting for the same malloc debug lock.\n\nThis is not a complete deadlock since the unwinder has timeouts,\nbut it results in truncated unwinds that take at least five\nseconds to complete.\n\nOnly the backtrace signals needs to be blocked because it is the only\nknown signal that will result in a thread being paused in a signal\nhandler.\n\nAlso, added a named signal in the reserved signal list for the\nspecial bionic backtrace signal.\n\nBug: 150833265\n\nTest: New unit tests pass with fix, fail without fix.\nChange-Id: If3e41f092ebd40ce62a59ef51d636a91bc31ed80\n"
    },
    {
      "commit": "f2b1e03606968acc7557c3e35e7e36a7da3ec524",
      "tree": "97fc6c6a20f8a2eeb63d17dbeab9092feb8f584f",
      "parents": [
        "27a8c60f045f939ab1cb7157313778966ed29404"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Dec 10 17:41:16 2019 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Jan 10 19:07:59 2020 -0800"
      },
      "message": "Export the unwinder implementation from libc.\n\nThis supports the soong commit which causes most platform binaries to stop\nstatically linking against the unwinder implementation. The soong commit\nmessage has more motivation for this change.\n\nARM32 uses LLVM libunwind, while all other platforms use libgcc as the\nunwinder implementation. This matches the current choices of unwinders on\nthe various architectures, but means that apps which were directly linking\nagainst the libc.so unwinder symbols on ARM32 are now using LLVM libunwind\ninstead of libgcc.\n\nSet libc_headers sdk_version to 1 so that libunwind_llvm can depend on it,\nand stop statically linking libunwind into libc_malloc_debug.\n\nBug: 144430859\nChange-Id: I52c7f7893d93f500383aeb0b76086c3b6f1935a5\n"
    },
    {
      "commit": "e4619f771984064da861a1be17de53132542dade",
      "tree": "2a9d64631584bf725571225d1ee34cf0fdf5b04d",
      "parents": [
        "17dfa33200f8b72e3bf96271f590e2fd7db10529"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Nov 11 14:17:44 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Nov 15 14:19:33 2019 -0800"
      },
      "message": "Add automatic running of tests on bionic changes.\n\nmalloc debug and malloc hooks have been broken for a long time\nand no one noticed. So add them to be run by default on bionic\nchanges since that provides the most coverage.\n\nChange the malloc debug and malloc hooks tests to support isolated\nruns.\n\nChanged the name of the malloc hooks unit tests to system tests\nbecause they weren\u0027t really unit tests.\n\nChanged the verify leak malloc debug tests to print out extra\ninformation so it is possible to figure out what sized allocation\nfailed.\n\nTest: Ran tests.\nChange-Id: Idea4c864f1d62598148ee78d7c9397e45234b1ca\n"
    },
    {
      "commit": "f302cfb26bd840a3b4adaa8aa7be0f369c68483b",
      "tree": "019d7d78e3d0e295418267d68c6404621b2246df",
      "parents": [
        "e87e0dcbaec82aad9e2e3b441384a4b39a419105"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Oct 07 15:52:21 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Oct 07 15:52:21 2019 +0900"
      },
      "message": "libc_malloc_[debug|hooks] are not available for platform\n\nThe libs are not available for platform. Thus removing\n\u0027//apex_available:platform\u0027 from the apex_available property. However,\nsince there are test modules that statically links the libs, we\nexceptionally make the static variant of the libs available to the\nplatform.\n\nTest: m\nTest: mm under bionic does not create\nout/target/product/\u003cname\u003e/system/lib[64]/libc_malloc_[debug|hooks].so\n\nChange-Id: Ia6d473658c4231b04b5db511f9dacbbdf0f207b0\n"
    },
    {
      "commit": "e87e0dcbaec82aad9e2e3b441384a4b39a419105",
      "tree": "da1d4ede0f523aca496a5b39c892f19d1a8f1106",
      "parents": [
        "67ff8b5f9cb1af1a633e96a771e386d3305c6799"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Oct 02 17:09:33 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Oct 07 13:52:32 2019 +0900"
      },
      "message": "Restrict the availability of the bionic libs\n\nThe bionic libs are now restricted to be in the runtime APEX and the\nplatform (for bootstrapping). It can still be referenced from other\nAPEXes but can\u0027t be included there.\n\nBug: 139870423\nTest: m\nChange-Id: I7f99eef27ccf75844ca5c9a7ea866496841b738f\n"
    },
    {
      "commit": "2b0638ef29bb305f8a37c16c706fb0ee80a994c0",
      "tree": "bea668f7605903876618505b7aec795da94ea4ae",
      "parents": [
        "1ffee0cfc1e3a7fddf4cbe633694be91e72265a1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 11 19:05:29 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 16 12:27:33 2019 -0700"
      },
      "message": "Make bionic_malloc.h a platform header.\n\nInstead of having platform directories directly include the\nprivate header, create a platform header directory and export it.\n\nBug: 130763340\n\nTest: Builds.\nChange-Id: Ie0f092b3fe077a3de8b90266c0b28bfbc20d0dfa\nMerged-In: Ie0f092b3fe077a3de8b90266c0b28bfbc20d0dfa\n(cherry picked from commit 8f582ef2f8a77d953d0e9f33387f592d20f852e2)\n"
    },
    {
      "commit": "4ea19214a4d43c90fddb9c427311e8cd9ebfa9e7",
      "tree": "bdff939c77b02aa545e7d8cc840b424a682ee4a3",
      "parents": [
        "6b2532e19a76e9b809d2e52e677b1f2004159443"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Jul 23 13:31:14 2019 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Jul 24 12:16:41 2019 -0700"
      },
      "message": "Link libc++demangle.\n\nThe demangler is moving out of libc++abi to save on bloat.\n\nTest: make checkbuild\nBug: http://b/138245375\nChange-Id: I7402894bb326f524388c9efdf86509dad50f2018\n"
    },
    {
      "commit": "9782b8707484addc0c90b641422e583e95ab7b35",
      "tree": "6c76c9f4832eae6764ee9425fc8f50bd19fa7c79",
      "parents": [
        "9cf76012aa5edc11050920ab1b65817c1be1a112"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 13:36:50 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 21:11:22 2019 +0000"
      },
      "message": "Move to the libc++ demangler.\n\nBug: 136138882\n\nTest: Ran malloc debug tests.\nTest: Ran an app with backtrace_full and verified demangling working in\nTest: log file.\nTest: Enabled leak checking and verified that the logs include properly\nTest: demangled.\nChange-Id: Ic4fd9f1522451e867048ac1bea59d8c5ed0d3577\n"
    },
    {
      "commit": "b9667b51a8e9831baa1e54362b1f614a911e4e76",
      "tree": "8cd85f5d36203311abe54a0aa1b977b59d9ad7f0",
      "parents": [
        "72aafad9506d65c8c0f957cae4b664402cc0e8ab"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 13:45:18 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 14:26:31 2019 -0700"
      },
      "message": "Export some symbols for vendor libmemunreachable\n\nAdd the malloc symbols used by libmemunreachable to the VNDK, and\nmake libc_malloc_debug_backtrace vendor_available.\n\nBug: 132302484\nTest: m checkbuild\nChange-Id: Ide555195afa084c13eaeaf0eab6ff90787b5f2d0\n"
    },
    {
      "commit": "1fc5ccfe762f4cf2322a53215934492003dae49e",
      "tree": "b07af2f8b2466d0a7210b2aaacd97af5fe70efbd",
      "parents": [
        "ac74615c1c3638d33448f0f6995fb8bc9599f062"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Feb 15 18:06:15 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 15 10:54:55 2019 -0700"
      },
      "message": "Add a platform API for setting an allocation limit.\n\nIntroduce an M_SET_ALLOCATION_LIMIT enumerator for android_mallopt(),\nwhich can be used to set an upper bound on the total size of all\nallocations made using the memory allocation APIs.\n\nThis is useful for programs such as audioextractor and mediaserver\nwhich need to set such a limit as a security mitigation. Currently\nthese programs are using setrlimit(RLIMIT_AS) which isn\u0027t exactly\nwhat these programs want to control. RLIMIT_AS is also problematic\nunder sanitizers which allocate large amounts of address space as\nshadow memory, and is especially problematic under shadow call stack,\nwhich requires 16MB of address space per thread.\n\nAdd new unit tests for bionic.\n\nAdd new unit tests for malloc debug that verify that when the limit\nis enabled, malloc debug still functions for nearly every allocation\nfunction.\n\nBug: 118642754\nTest: Ran bionic-unit-tests/bionic-unit-tests-static.\nTest: Ran malloc debug tests and perfetto integration tests.\nChange-Id: I735403c4d2c87f00fb2cdef81d00af0af446b2bb\n"
    },
    {
      "commit": "6c619a0da3f96a26d91c1db48fd3e3be156aabe5",
      "tree": "aa0802d01d19ed0891e6b77a732cc72ed5617dcc",
      "parents": [
        "4e167f35d602f9dcede3b74ff3e09e88f3edb398"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 01 17:59:51 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 07 08:39:55 2019 -0800"
      },
      "message": "Refactor the malloc_info code.\n\nmalloc_info needs to be per native allocator, but the code treated it\nlike a global function that doesn\u0027t depend on the native memory allocator.\n\nUpdate malloc debug to dump the actual pointers that it has been tracking.\n\nTest: bionic-unit-tests pass.\nTest: malloc debug tests pass.\nTest: malloc hook tests pass.\nChange-Id: I3b0d4d748489dd84c16d16933479dc8b8d79013e\nMerged-In: I3b0d4d748489dd84c16d16933479dc8b8d79013e\n(cherry picked from commit a3656a98b10d2a4a6194a5d9705ad9c2cc5877b0)\n"
    },
    {
      "commit": "b3fe0136d85f889ba467ea3e259bd18805c06762",
      "tree": "0e01f063363e40df54e89141e666056eedd1283e",
      "parents": [
        "bbd465a230401b41fa6c1375ea5ab139f7fede7e",
        "56794421fc41e5ed28b7546634051458159bbfd4"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Nov 08 04:59:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 04:59:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Disable lld, libc_malloc_debug failed to boot.\"\""
    },
    {
      "commit": "56794421fc41e5ed28b7546634051458159bbfd4",
      "tree": "5b4352c5e0ddacfac7785f290f08a7535b0631ad",
      "parents": [
        "0e87940961f999aad65834abf7a09e86b569ed3b"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 07 22:02:27 2018 +0000"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Nov 07 23:49:37 2018 +0000"
      },
      "message": "Revert \"Disable lld, libc_malloc_debug failed to boot.\"\n\nThis reverts commit 0e87940961f999aad65834abf7a09e86b569ed3b.\n\nReason for revert: This should have been fixed.\nBug: 78118944\n\nChange-Id: I796ff2420ec3682dd54a059175a8428868b75c23\n"
    },
    {
      "commit": "97b474710225bc4853ab314c3d9ca812dc375525",
      "tree": "dca19aa52db541c9ef7832d41d1630e81159b12a",
      "parents": [
        "06f217d399b1bf6345e4c71b014cdaac3d1c183a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 10 14:45:24 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 11 15:23:00 2018 -0700"
      },
      "message": "Disable malloc debug intercepts when exiting.\n\nThere is a hang when enabling leak_track since the dumping of the\nleak data can wind up doing an allocation.\n\nAdd new system unit test to make sure this doesn\u0027t happen again.\n\nBug: 111146059\n\nTest: Test program that leaks does not hang forever.\nTest: Unit tests pass.\nChange-Id: Icf99be58ba5db98ee124a471b957a086045f5870\n"
    },
    {
      "commit": "2e1a40a2033088e7f2e78424a8b163d3fcf84b1b",
      "tree": "51ec5d1703f6225d6dc58ad5b01f9c728e4f2883",
      "parents": [
        "2583b0adb201233313bbe02f665f5c623f2c5a30"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 13 10:46:34 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 15 12:29:13 2018 -0700"
      },
      "message": "Change heap dump format slightly.\n\nBump the version from v1.1 to v1.2 and add a build fingerprint line.\n\nUpdate the heap dump documentation to match the new format and reflect\nwhat made it in P and what made it in Q.\n\nUpdate the unit tests for this change.\n\nAdd -O0 to unit test code to make it easier to debug.\n\nAdd an external function that can be used by the framework code\nso that there is only one way to dump the heap.\n\nBug: 110095681\n\nTest: Ran unit tests.\nTest: Did a dump of a real process and verified fingerprint.\nTest: Did a dump of a process without malloc debug enabled.\nChange-Id: I769a476cbeaf4c85c5d75bd6d6385f0e3add948c\nMerged-In: I769a476cbeaf4c85c5d75bd6d6385f0e3add948c\n(cherry picked from commit c84a2a2601a4112ca6e43a33defb989c1da8c2f4)\n"
    },
    {
      "commit": "93bdd6ae3ad8322b7be2be0201c8db7227631d14",
      "tree": "42ee959b96c2c2db42f0569554680dbe22ce39ef",
      "parents": [
        "4c5c45346fcc6f066a89bfc455f287fe2f4e3e41"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 05 11:12:38 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 24 08:44:53 2018 -0700"
      },
      "message": "Add support for using the new unwinder.\n\nThis adds a new option backtrace_full, when it is set, then it will use\nlibunwindstack.\n\nModify the dump to file data to dump the extra information from libunwindstack.\nAlong with the new dump file format, change the version to v1.1.\nUpdated document for new format of file data.\n\nAdd unit tests for the new functionality.\n\nBug: 74361929\n\nTest: Ran unit tests.\nChange-Id: I40fff795f5346bba7b9d7fde2e04f269ff4eb7f1\n"
    },
    {
      "commit": "0e87940961f999aad65834abf7a09e86b569ed3b",
      "tree": "a8a725361ab0d3cff2728d19ed5eb1f327196d80",
      "parents": [
        "af0ad77af5fc2a4f39fa29b4e6720898d92fb2b4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Apr 16 10:50:52 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Apr 16 10:50:52 2018 -0700"
      },
      "message": "Disable lld, libc_malloc_debug failed to boot.\n\n* Linker rules for lld do not work with libunwind_llvm yet.\n\nBug: 78118944\nTest: make checkbuild and boot\nChange-Id: I0eda2409d9f365029f70f4255edffbeae49cb6d2\n"
    },
    {
      "commit": "4da2503d70dc4bc1444454876e3794b69227d90d",
      "tree": "d904c750ebac96aee76df44baad1320c0db211a3",
      "parents": [
        "a3f6f6c1b9135c90e410f5382b153db9a43a4db0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 07 13:38:48 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 02 18:59:23 2018 -0700"
      },
      "message": "Refactor malloc debug.\n\nChanges\n- Refactor the code so that only guards require creating a special header\n  for every pointer allocated.\n- Store only a single copy of every backtrace. This saves memory so that\n  turning on the backtrace option doesn\u0027t result in 10X memory usage.\n- Added new option track_allocs that only verifies pointers are valid for\n  free/malloc_usable_size/realloc.\n- Remove suffix from test names.\n- Add the TRACK_ALLOCS options to all guard options.\n- Add new option verify_pointers that is a lightweight way to verify\n  pointers that are passed to allocation routines.\n- Do auto-formatting of the code.\n- Updated documentation for all of these changes.\n\nBug: 74361929\n\nTest: Ran unit tests.\nTest: Ran libmemunreachable unit tests.\nTest: Ran an app with backtrace enabled.\n\nChange-Id: I3246c48ae4f9811f64622d90d0a9b4d9d818702c\n"
    },
    {
      "commit": "d50a1de565c00d415ad39ef8c14e392da4c99d43",
      "tree": "011e021bbb021d83634d00ffa3255ebd7d468cfe",
      "parents": [
        "a70089163ca09a983772dd2a8daa17e47f8ede53"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 17:30:57 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 05 17:30:57 2018 -0800"
      },
      "message": "Run bpfmt manually.\n\nBug: N/A\nTest: builds\nChange-Id: I0cf145c3b699ac8ef170a63366832f63a9cc1a91\n"
    },
    {
      "commit": "a625ee2063dec60996f01e0274e4c352ab75c46b",
      "tree": "5654e79f8e65ba2372ff038d1e4285ea3ecf6629",
      "parents": [
        "498b4de964b5d38952acfe2d1823c13f20a641d3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 01 14:16:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 02 10:10:24 2017 -0700"
      },
      "message": "Use libdemangle for function names.\n\nBug: 62141808\n\nTest: Ran unit tests, ran malloc debug with leaks and verified functions\nTest: are demangled.\nChange-Id: I1900632e9a55bb818b1aabc798224ff3eebc1fca\n"
    },
    {
      "commit": "7a3681e5b6c39bc2b3b62031ca5941dbf7bc4e63",
      "tree": "78c25e2a38b7efed8db770a623a5cbfb7eaab11d",
      "parents": [
        "ca5e0f49ca5df873a20c996755175b5c9c1e2ed9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 24 17:48:32 2017 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 03 08:50:43 2017 -0700"
      },
      "message": "Move libc_log code into libasync_safe.\n\nThis library is used by a number of different libraries in the system.\nMake it easy for platform libraries to use this library and create\nan actual exported include file.\n\nChange the names of the functions to reflect the new name of the library.\n\nRun clang_format on the async_safe_log.cpp file since the formatting is\nall over the place.\n\nBug: 31919199\n\nTest: Compiled for angler/bullhead, and booted.\nTest: Ran bionic unit tests.\nTest: Ran the malloc debug tests.\nChange-Id: I8071bf690c17b0ea3bc8dc5749cdd5b6ad58478a\n"
    },
    {
      "commit": "ac81fe8657119c265edcc2f05b3e5b7c5b17ae9f",
      "tree": "99a6e825926829bb7c8d955cbc96ae1777691ef9",
      "parents": [
        "8945d5e43a25737f3f888a90742cc918b1124a05"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Fri Aug 26 15:54:59 2016 +0100"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 17 13:13:27 2016 -0800"
      },
      "message": "Enable malloc debug using environment variables\n\nPreviously malloc debug can be enabled only using global settings\naccessible to the root user only. This CL adds a new option to enable\nit using environment variables making it possible to use it with pure\nnative (shell) applications on production builds (from shell user) and\nprepares it for using it from logwrapper on production devices.\n\nRemove the old environment variable and property since they are not\nnecessary.\n\nTest: Enable malloc debug using environment variable and verify\nTest: that it only affects the commands launched from the shell.\nTest: Enable malloc debug using the property variable and verify\nTest: that it affects all commands.\nTest: Run all unit tests in 32 bit and 64 bit.\nChange-Id: Iecb75a3471552f619f196ad550c5f41fcd9ce8e5\n"
    },
    {
      "commit": "baa4899d386a79a23a85762e02c1c5e7faa53778",
      "tree": "1dda201a320ece4b88790fb7418bba022d9bc552",
      "parents": [
        "48cedda02a9874d59b2b3652d0427abce7fedaab"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 13 11:15:21 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 14 09:07:56 2016 -0700"
      },
      "message": "Convert malloc_debug from Android.mk to Android.bp\n\nChange-Id: I60ad376d222a92a29263c2804dcd1bd0d3c383d0\n"
    }
  ]
}
