)]}'
{
  "log": [
    {
      "commit": "8efcd6325cf362a4199cf18407456010774e34f2",
      "tree": "aa29fd12cf8c2947b94e26e29a180a385e1d69f9",
      "parents": [
        "3bb971dcc31d163e17aa9c76326aa7070489c1ae"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 24 17:27:05 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 24 17:27:05 2020 +0000"
      },
      "message": "Adjust to MapInfo to new api.\n\nChange-Id: Ic3818a8b001657e6b54ba6fcbf68f8c1d7ef2683\n"
    },
    {
      "commit": "48c35f0cf6c49dbe2639dfff3b161e4d662bf790",
      "tree": "02eb8a7f4601e46d123f019bb99bfa391d2e260d",
      "parents": [
        "3434e29e1c547617e5f7d1bef14050d809f4b49e",
        "71ad49554f5dcaa636e679c3f3ae97b116959915"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Nov 18 20:57:36 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 18 20:57:36 2020 +0000"
      },
      "message": "Merge \"Change the android_mallopt(M_SET_HEAP_TAGGING_LEVEL) API.\""
    },
    {
      "commit": "71ad49554f5dcaa636e679c3f3ae97b116959915",
      "tree": "0fd91f91e6d1accdd5748a7497137fdf6620a1be",
      "parents": [
        "13e33f7f80443ce63bfa410442d15151227f427c"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 02 13:35:28 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Nov 18 10:24:29 2020 -0800"
      },
      "message": "Change the android_mallopt(M_SET_HEAP_TAGGING_LEVEL) API.\n\n- Make it apply to every thread, and thus remove the restriction\n  that it must be called while the program is single threaded.\n- Make it change TCF0 itself (on all threads), instead of requiring\n  callers to do it themselves, which can be error prone.\n\nAnd update all of the call sites.\n\nChange the implementation of\nandroid_mallopt(M_DISABLE_MEMORY_MITIGATIONS) to call\nandroid_mallopt(M_SET_HEAP_TAGGING_LEVEL) internally. This avoids\ncrashes during startup that were observed when the two mallopts\nupdated TCF0 unaware of each other.\n\nI wouldn\u0027t expect there to be any out-of-tree callers at this point,\nbut it\u0027s worth noting that the new interface is backwards compatible\nwith the old one because it strictly expands the set of situations in\nwhich the API can be used (i.e. situations where there are multiple\nthreads running or where TCF0 hadn\u0027t been updated beforehand).\n\nBug: 135772972\nChange-Id: I7746707898ff31ef2e0af01c4f55ba90b72bef51\n"
    },
    {
      "commit": "ebc78cc8523b1047d9d7eca1cf183f39a6b06480",
      "tree": "52d8542d6504ce5f78c8fcce07000a9f37463f0a",
      "parents": [
        "13e33f7f80443ce63bfa410442d15151227f427c"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Nov 13 10:54:13 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Nov 13 16:08:27 2020 -0800"
      },
      "message": "Switch to the new kernel API for obtaining fault address tag bits.\n\nThe discussion on LKML is converging on v16 of the fault address tag\nbits patch [1]. In this version of the patch the presence of the tag\nbits in si_addr is controlled by a sa_flags bit, and a protocol is\nintroduced to allow userspace to detect kernel support for sa_flags\nbits. Update the tombstone signal handler to use this API to read\nthe tag bits, update the interceptors in libsigchain to implement\nthe flag support detection protocol and hide the tag bits in si_addr\nfrom chained signal handlers that did not request them to match the\nkernel behavior.\n\n[1] https://lore.kernel.org/linux-arm-kernel/cover.1605235762.git.pcc@google.com/\n\nChange-Id: I57f24c07c01ceb3e5b81cfc15edf559ef7dfc740\n"
    },
    {
      "commit": "485505c06d13c4a5b08a14ba7b5515165f00c852",
      "tree": "e283b4a5bfc30a77deb4a4d5b387d832bf9edb58",
      "parents": [
        "8df6d9e0dea8229e1142718e9cc7b2884bae25f5",
        "2b6764a625c394721d9e04683f30d37d44a2e178"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 03 03:12:02 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 03 03:12:02 2020 +0000"
      },
      "message": "Merge \"Fix the expected tagged_addr_ctrl in a test.\""
    },
    {
      "commit": "2b6764a625c394721d9e04683f30d37d44a2e178",
      "tree": "aa0939c4bedef28f8dac8c30623548b2a1444ad9",
      "parents": [
        "14096bd924e79d07022e8c6d3db728bf8302fd40"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 02 15:59:52 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 02 16:00:08 2020 -0800"
      },
      "message": "Fix the expected tagged_addr_ctrl in a test.\n\nIt turns out that I had originally written the test with a local\npatch applied that forces TCF0 to SYNC, so it was testing for the\nwrong tagged_addr_ctrl value. Fix it.\n\nBug: 135772972\nChange-Id: Ibb9b25e5f5635372ad5de7825c31d7264ff02590\n"
    },
    {
      "commit": "2ec92cfc280c20c5526782c6e4b2e82fa00f8cbb",
      "tree": "258c85b03cf8033e795525dfd023bbddaf39533c",
      "parents": [
        "55015ffb820687d642f74ceca4a5642932f6b6c7"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Oct 27 16:25:45 2020 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Oct 28 10:57:51 2020 -0700"
      },
      "message": "libdebuggerd_handler_fallback: make vendor_ramdisk_available.\n\nTest: builds\nBug: 156098440\nChange-Id: I11466de73bbb3a30c10a7a9088954e37772b7a00\n"
    },
    {
      "commit": "81c94cdce6baa9847f2f5fda45c885b41cf3fb3b",
      "tree": "f533f8254df9225e36280523a8fd324fb75952b8",
      "parents": [
        "d0642a373dfa9acaa0b1d3d23e3c6d56eabdb159"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Oct 01 13:01:15 2020 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Oct 01 14:25:36 2020 -0700"
      },
      "message": "Start tombstoned early in post-fs-data.\n\nBug: http://b/169659307\nTest: manual\nChange-Id: Ie19de31e7e2b6cd43402cfd3a2e9274728e9e6b4\n"
    },
    {
      "commit": "d0642a373dfa9acaa0b1d3d23e3c6d56eabdb159",
      "tree": "9b1c7c139001eb7167a8df638732e9d0a4ee8ed4",
      "parents": [
        "7cfc94419534e9daf8bbaa46960d1ac570d0025b",
        "68083003b8875e0acec834461ba3574a4d65e583"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 01 21:00:16 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 01 21:00:16 2020 +0000"
      },
      "message": "Merge \"Improve error message in debuggerd fallback handler.\""
    },
    {
      "commit": "68083003b8875e0acec834461ba3574a4d65e583",
      "tree": "231dd180d54784fa518a9c3eef6d46895e7469a4",
      "parents": [
        "36991d8e26ebfcdbe1d00cc1f3b9c553d83bcadd"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 25 13:51:02 2020 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Sep 25 13:51:02 2020 -0700"
      },
      "message": "Improve error message in debuggerd fallback handler.\n\nBug: http://b/164014625\nTest: none\nChange-Id: I4f1e61be93c511676e66b909a15735bba963eff0\n"
    },
    {
      "commit": "b05c472421d9d4dd919926c95a5c1de4eb9a721a",
      "tree": "c8b6009b561bc70170f102a9697ccf42bb997999",
      "parents": [
        "de540ad2f1db55eb34adc8af8f5074163ffb9118"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 23 15:51:46 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Sep 24 18:46:23 2020 -0700"
      },
      "message": "Add arch member into Unwinder object.\n\nThis simplifies some of the logic and removes the need to pass an\nArch value to functions that should already know about the arch\nit is operating on.\n\nIncludes fixes for debuggerd/libbacktrace.\n\nAdded new unit tests to cover new cases.\n\nTest: All unit tests pass.\nTest: Faked unwinder failing to verify debuggerd error messages display\nTest: properly in backtrace and tombstone.\nChange-Id: I439fcae0695befcfb1cb4c0a786cc74949d33425\n"
    },
    {
      "commit": "864f15dd6d05abe77670e2e20fe7aa1819600e7c",
      "tree": "dd37358a2568729acacd33b6d279eb9466207e74",
      "parents": [
        "278f11b57425d3a14369049e866c597980677988"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Sep 14 20:27:36 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Sep 15 21:32:36 2020 -0700"
      },
      "message": "Dump the per-thread TAGGED_ADDR_CTRL value if available.\n\nThis value indicates whether memory tagging is enabled on a thread,\nthe mode (sync or async) and the set of excluded tags. This information\ncan sometimes be important for understanding an MTE related crash,\nso include it in the per-thread tombstone output.\n\nBug: 135772972\nChange-Id: I25a16e10ac7fbb2b1ab2a961a5279f787039000b\n"
    },
    {
      "commit": "713ec25103fb601dd508f773a326d9fcd83f0e25",
      "tree": "7386c411357fd654b0d791eb951d7a6f8d4ec764",
      "parents": [
        "9d7657b62ef47c7fdb49d08eb049b8039f3a25e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 03 08:43:43 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 03 18:56:35 2020 +0000"
      },
      "message": "libdebuggerd: do a to-do.\n\nUntil 77fdb22cf686002dfba8a24cf36666d7257b3034, logd started as\nAID_ROOT and then dropped its privileges. Since then, there\u0027s been no\nreason to use string comparisons rather than checking the uid.\n\nTest: pkill -SEGV logd\nTest: treehugger\nChange-Id: Ia709f8f59cb0ab9abac7df84c96c701b5d0a83ea\n"
    },
    {
      "commit": "7b21637782358142be6953af26515b6cba80334b",
      "tree": "784b36191bbf76fabc43e07c82e159762edf057f",
      "parents": [
        "fcaed0effab54fa6face42a1b55c26760df0a074"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Jul 31 15:25:43 2020 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Jul 31 16:36:06 2020 -0600"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nBug: 161896447\nChange-Id: Iafcccbdbdf3ff1078e87000e2ce560ff09b43f68\n"
    },
    {
      "commit": "ba1bd64ca2af20d251fa9ee645d902c0a6480e34",
      "tree": "38cb29fcc9c0130c9a4bdab9125a835c55ae7e94",
      "parents": [
        "d1bd5f20eb89c7c84599d0fd79e7e2a82f8f2b29",
        "a660cb3f13ad369554678ea19753cbc7e92726f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jul 24 15:47:03 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 24 15:47:03 2020 +0000"
      },
      "message": "Merge \"debuggerd: use One True timestamp function.\""
    },
    {
      "commit": "a660cb3f13ad369554678ea19753cbc7e92726f3",
      "tree": "3559b09f77391adc9c74016ff9d9d2e52d2d1fb2",
      "parents": [
        "4aa073337d6b872ff87b702c4dcfa26142e6c9c2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 23 15:26:10 2020 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 23 16:33:53 2020 -0700"
      },
      "message": "debuggerd: use One True timestamp function.\n\nAn OEM asks for sub-second granularity, and that\u0027s most easily done if\nwe only have one timestamp generator. I\u0027m not convinced sub-second\ngranularity is particularly useful myself, and I definitely don\u0027t think\nthat nanosecond resolution is meaningful but I do like this cleanup, and\nif I\u0027m going to use sub-second precision I may as well use the maximum\nprecision available to me.\n\nAlso reduce some duplication of code reading cmdline/comm.\n\nBug: https://issuetracker.google.com/161860597\nTest: head /data/tombstones/*\nChange-Id: I035ecfd4a3338ccd84dae0ef973a998a7c7c5056\n"
    },
    {
      "commit": "fe8997aff88d2a40f3194040aafd3cce3e451d08",
      "tree": "475eb0f4b64b0e5ad00acf3b1786532fab1719bb",
      "parents": [
        "b1fcedb92804f166918e8a02ba9098e453be0139"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Jul 20 15:08:52 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jul 21 19:05:16 2020 -0700"
      },
      "message": "Include memory tags in memory dump output.\n\nTags appear in the addresses printed in the memory dump, which seems\nlike a reasonable place to put them because tagged addresses will\nalso appear in other places in the tombstone, such as registers and\nthe fault address.\n\nBug: 135772972\nChange-Id: I52da338347ff6b7503cf5ac80763c540695dc061\n"
    },
    {
      "commit": "b1fcedb92804f166918e8a02ba9098e453be0139",
      "tree": "2a3df966bc4964692113dfbcefd43c353e98f3f2",
      "parents": [
        "d00a577c97f68725dc2488f9ee1e44a96f639c5d"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jul 21 16:29:02 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jul 21 16:59:24 2020 -0700"
      },
      "message": "Adjust conditions for dumping the memory around a register.\n\nPreviously, we would do a simple bounds check before deciding\nwhether to dump the memory around a register. On 64-bit platforms,\nthe register\u0027s value was required to be less than (4 \u003c\u003c 60). However,\nafter stripping tags on AArch64 as part of r.android.com/1365229, all\npointer values became less than (4 \u003c\u003c 60), so the check became useless\nfor filtering out invalid pointers. As a result, we would attempt to\ndump memory for all registers, which for a register not containing\na valid pointer would typically consist of 16 lines of dashes.\n\nOne possible fix may be to replace the constant (4 \u003c\u003c 60) with the\nprocess\u0027s actual address space limit (known as TASK_SIZE inside the\nkernel; typically 39 bits on AArch64 and 48 bits on x86_64), but the\nkernel provides no API for retrieving a process\u0027s TASK_SIZE value. We\ncould guess it by looking at for example the highest bit set in the\nvalue of getauxval(AT_EXECFN), which points to an address on the stack\nwhich typically is mapped at the end of the address space on program\nstartup, but at least on AArch64 it is possible to dynamically extend\nTASK_SIZE at runtime by providing a hint to mmap(), so this is not\nalways sufficient.\n\nInstead, it seems best to remove most of the early bounds check, and\nsimply issue ptrace() calls for each register value, bailing out of\nthe entire output if none of the calls ended up succeeding. This also\nhas the nice side effect of avoiding 16 lines of noise per register\nwhose value looks like a pointer but actually points to unmapped\nmemory. We still retain part of the bounds check in order to avoid\ninteger overflow during the dump (including overflows into the tag\npart of the address on architectures that support tagging).\n\nBug: 154272452\nChange-Id: I94e4b7124b7735b92fd83a49c80ebded3483cd4e\n"
    },
    {
      "commit": "d00a577c97f68725dc2488f9ee1e44a96f639c5d",
      "tree": "8f069edc434ef7cfa4726d590004151269e493c4",
      "parents": [
        "10e428dd77181003942542d8de5c4615b693c610"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Jul 20 23:11:16 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jul 21 16:59:24 2020 -0700"
      },
      "message": "Statically link libminijail to debuggerd_test.\n\nWe do not install a 32-bit version of libminijail to 64/32 devices,\nwhich means that \"atest -a debuggerd_test\" always fails on 32-bit.\nFix it by statically linking libminijail.\n\nChange-Id: I1e5610d1353b4f5b718c1259825421c0c07d7c24\n"
    },
    {
      "commit": "10e428dd77181003942542d8de5c4615b693c610",
      "tree": "a39bf752d803fba06954feb6e9bbafd54a346bc2",
      "parents": [
        "c8e4154d899847a32f0fb7bbf999c39c7cb0dba7"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Jul 17 14:49:31 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Jul 17 17:35:49 2020 -0700"
      },
      "message": "Fix dumping of heap memory.\n\nAfter r.android.com/1288984 we started failing to dump memory contents\nfor heap addresses because the tag started causing any addresses to\nfail this bounds check. Add an untag_address() call to the bounds check\nso that the tag is ignored.\n\nBug: 154272452\nChange-Id: I3a6d1a078b21871bd93164150a123549f83289f6\n"
    },
    {
      "commit": "bbe6905d7e9a85522eec7cb95e0ccd5930bdd6cb",
      "tree": "1a74c707e9b2211f7e2a123b429d4db2b72274aa",
      "parents": [
        "d427b54c535d3f56e9db947efa4878346541f890"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri May 08 10:11:19 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri May 08 10:14:47 2020 -0700"
      },
      "message": "Add stack trace coverage to MTE tests.\n\nIt\u0027s impractical to test the contents of the stack trace, but we\nshould at least test that *a* stack trace is present, which would\nhave caught the bug fixed by r.android.com/1306754 .\n\nBug: 135772972\nChange-Id: Ic5e0b997caa53c7eeec4e5185df5c043c9d4fe3d\n"
    },
    {
      "commit": "f86225206df162b43b5a0518a9eaf747d60303c5",
      "tree": "7bf781dd784e55d63b5275f089e300d77e6a0877",
      "parents": [
        "e0edc7ec328e6775e081c30b42837eb84ff282a4"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Apr 07 14:07:32 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Apr 27 13:15:49 2020 -0700"
      },
      "message": "Add support for MTE error reports in tombstones.\n\nTeach debuggerd to use the new scudo APIs proposed in\nhttps://reviews.llvm.org/D77283 for extracing MTE error reports from crashed\nprocesses, and include those reports in tombstones if possible.\n\nBug: 135772972\nChange-Id: I082dfd0ac9d781cfed2b8c34cc73562614bb0dbb\n"
    },
    {
      "commit": "c5c6d7d3268c2eecd43b98a2a3428752d13b745d",
      "tree": "3afe0ccf41dfff72a00d8199b278ecd26627a831",
      "parents": [
        "10f8f5e363c36530d6743c3230fa56cf08db6646"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 17 09:38:55 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Apr 17 15:31:34 2020 -0700"
      },
      "message": "Don\u0027t include log/log_read.h in log/log.h\n\nlog/log.h primarily concerns itself with writing logs.  The few users\nwho read logs should directly include log/log_read.h.\n\nBug: 78370064\nTest: build\nChange-Id: Ie95c55ea2ffc76fc95768323d445ada6ad4f2520\n"
    },
    {
      "commit": "c40a7515eb223d9f24f500b99478a4800f49dc3a",
      "tree": "6de8d70dc2d2a5cb08a69dd8a824fe827e8c812e",
      "parents": [
        "89cce05891ce0afde18477be05303d01353258f5"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 10 10:09:39 2020 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Apr 10 10:09:39 2020 -0700"
      },
      "message": "debuggerd: don\u0027t leave a zombie child if crash_dump is killed.\n\nIf crash_dump dies before it gets a chance to write to the pipe we use\nto let the debugged-process know that it successfully started, we\nweren\u0027t cleaning up the child we fork to start it, leaving a zombie\nchild.\n\nBug: http://b/152119184\nTest: debuggerd_test\nChange-Id: Id01cc05f693995e9998941774f74ab8e3d8b4d8a\n"
    },
    {
      "commit": "cd63cae6b206a067fab1afe78f7647f1f2cb1513",
      "tree": "04e72546f2968a86b41a1151a5c8639adb2e852f",
      "parents": [
        "5677803cb7e78421f835513d088e24ccd6da6d87",
        "f03af8844acbd63f257c51577834d2c126a41f47"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Mar 30 21:40:58 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 21:40:58 2020 +0000"
      },
      "message": "Merge \"Read fault address on arm64 using proposed kernel API.\""
    },
    {
      "commit": "5677803cb7e78421f835513d088e24ccd6da6d87",
      "tree": "d30f5f6216dd8218d34c0c63e97993b93f6c28e0",
      "parents": [
        "b480dc4f3f96e240c67b132cb4a508f7f9d141ca",
        "f3d542fe9fe4b82affada29928921314375d42f8"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Mar 30 21:36:41 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 21:36:41 2020 +0000"
      },
      "message": "Merge \"Create a debugger_process_info data structure with the process info pointers.\""
    },
    {
      "commit": "e2b76c5b001fab12df24d206894d17b3f5fd6d9b",
      "tree": "9ac8a4a1dae6216e4f51a177217d5cfd26fc8504",
      "parents": [
        "3de710f84f32d3dbfdaaea7f3d6f5dab63101f9f",
        "b72e74810ce1f5815b0a01b661b3da6ee1b14ef2"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Mar 30 19:03:41 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 19:03:41 2020 +0000"
      },
      "message": "Merge \"Move crash_dump into the runtime APEX.\""
    },
    {
      "commit": "f03af8844acbd63f257c51577834d2c126a41f47",
      "tree": "8cde302d29f6c19ad6da6ed35becb8462dafced3",
      "parents": [
        "f3d542fe9fe4b82affada29928921314375d42f8"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 20 18:09:00 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 27 20:00:06 2020 -0700"
      },
      "message": "Read fault address on arm64 using proposed kernel API.\n\nOn aarch64, the top 8 bits of the address (i.e. the tag bits) of\nthe fault address in si_addr are always clear. This isn\u0027t ideal for\nMTE which will require these bits in order to correctly diagnose\ntag mismatches.\n\nA proposed kernel patch [1] exposes the full fault address including\nthe tag bits as part of the ucontext. Change debuggerd to read this\nfault address if available.\n\n[1] https://patchwork.kernel.org/patch/11435077/\n\nBug: 135772972\nChange-Id: Ia05be574113860f4e9ecc36a310c4b740e0c4afb\n"
    },
    {
      "commit": "b9c072c551d1afee4818b17f077d69396dec286d",
      "tree": "2023e5b816d0f5c210b317f1ab2c553f2f21b455",
      "parents": [
        "1e413c8a9d9131eb83ad24d2d9753943e778d870"
      ],
      "author": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Wed Mar 25 10:50:25 2020 -0700"
      },
      "committer": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Thu Mar 26 13:39:05 2020 -0700"
      },
      "message": "Move PC-only unwind frame generation to libunwindstack.\n\nGWP-ASan uses frame-pointer based unwinding internally on\nallocation/deallocation to collect stack traces that are used when\ncrashes are reported.\n\nThis should be generic, so pull it out into libunwindstack so it can be\nused by MTE as well.\n\nBug: 152412331\nTest: atest debuggerd_test\nChange-Id: I27b32263aac63446f5fe398af108676b70cd3971\n"
    },
    {
      "commit": "f3d542fe9fe4b82affada29928921314375d42f8",
      "tree": "efcb73264a46da25adf6fa78524cb144f3b86af4",
      "parents": [
        "a0702789d5e6172a79812d93d08224022c102488"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Mar 05 16:46:15 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Mar 24 17:23:15 2020 -0700"
      },
      "message": "Create a debugger_process_info data structure with the process info pointers.\n\nSimilar to r.android.com/1247247 I\u0027ll be adding more of them for MTE.\n\nAlso, change the protocol between the crasher and crash_dump to make\nit easier to add new fields and change the referenced data structures\nwithout needing to worry about versioning. The version number for\nstatic executables is now always 1 (where the protocol will never\nchange), while the version number for dynamic executables is always\n4 (where the protocol can change, because the linker and crash_dump\nare version locked).\n\nBug: 135772972\nChange-Id: Ib4696d0544d7c87cb429aaaa15f18c3640059e16\n"
    },
    {
      "commit": "7581e86a7207ef1e420d13e270ecf72f7e1fc5f6",
      "tree": "cc385323ad1252c003137a6c376ec6dc30b744fa",
      "parents": [
        "89650f9692f3f693154de1c8a8a542424cad71cf",
        "907b2d0349c3010bdbe008635c018e89b62d12fe"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Mar 24 21:00:57 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 24 21:00:57 2020 +0000"
      },
      "message": "Merge \"Remove ANDROID_LOG_RDONLY, etc\""
    },
    {
      "commit": "907b2d0349c3010bdbe008635c018e89b62d12fe",
      "tree": "e661b1ed1deb50cea2d7994f0e0e621c99322fa6",
      "parents": [
        "447a1ead217d7993c2a97cdf516b21756bdea1e5"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Mar 23 13:40:10 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Mar 23 13:43:27 2020 -0700"
      },
      "message": "Remove ANDROID_LOG_RDONLY, etc\n\nThese macros haven\u0027t been meaningful in years.\n\nTest: logging unit tests\nChange-Id: I796ec6d9b450f8a84bc85c3f15ddd988724c5e08\n"
    },
    {
      "commit": "6d4e47a1652627d1b5a772456b9816faca9f9494",
      "tree": "271e265451ea471e9229a6354b470977f4bf1f30",
      "parents": [
        "548101de29d502a6e6ed4c4115c34e6f4cf3be15",
        "a2cc8930440baa3295c30a2fdf3f27239ba34af5"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Mar 23 20:15:14 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 23 20:15:14 2020 +0000"
      },
      "message": "Merge \"Remove use of static libdexfile to avoid linking in ART internal code.\""
    },
    {
      "commit": "5ac3927878db6331d5b75a71c1fdb89c1850d497",
      "tree": "6eef6eb80214e34680988a1eb501e5ca15fe5aad",
      "parents": [
        "3ab681c9a8a7de8b7f004b9e6afec749cdcbd5e5"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Mar 19 17:27:58 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Thu Mar 19 17:51:20 2020 -0700"
      },
      "message": "Make GetPcAdjustment a free function.\n\nWe\u0027re now using it in contexts that don\u0027t have all of the registers available,\nsuch as GWP-ASan and soon MTE, so it doesn\u0027t make sense to have it be a\nmember function of Regs.\n\nBug: 135772972\nChange-Id: I18b104ea0adb78588d7e475d0624cefc701ba52c\n"
    },
    {
      "commit": "a2cc8930440baa3295c30a2fdf3f27239ba34af5",
      "tree": "9cfec7eef9439f3bc34d5fe778320474031bc582",
      "parents": [
        "b33afa9d8da88cbda0df1a82358915aa7393899b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 23 21:32:43 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Mar 19 22:23:54 2020 +0000"
      },
      "message": "Remove use of static libdexfile to avoid linking in ART internal code.\n\n- Create a static library libunwindstack_no_dex without DEX support.\n- Use it in libdebuggerd_handler_fallback, whose only use is in the\n  linker, which shouldn\u0027t need that support.\n- Use it in init_first_stage, which doesn\u0027t need DEX support either.\n- Also need a libbacktrace_no_dex since it\u0027s in the dependency chain\n  from init_first_stage to libunwindstack_no_dex.\n\nAlso restrict the *_no_dex libs and libdebuggerd_handler_fallback as\nmuch as possible to avoid inadvertent use of these reduced\nfunctionality libs.\n\nTest: m init_first_stage on Cuttlefish\n  where BOARD_BUILD_SYSTEM_ROOT_IMAGE\u003dfalse\nTest: m system_image com.android.runtime\nTest: Build \u0026 boot\nTest: atest linker-unit-tests libunwindstack_unit_test debuggerd_test\nBug: 142944931\nBug: 151466650\nChange-Id: Iaacb29bfe602f3ca12a00a712e2a64c45ff0118b\n"
    },
    {
      "commit": "b72e74810ce1f5815b0a01b661b3da6ee1b14ef2",
      "tree": "2ae23dc93140861aa964c8ca7c2203979b785f18",
      "parents": [
        "780528e86bc0dfc62b462b07d8b8b69a21164b95"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Mar 16 18:14:13 2020 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Mar 18 10:38:04 2020 -0700"
      },
      "message": "Move crash_dump into the runtime APEX.\n\nA future change will introduce a version lock between linker and\ncrash_dump. Move crash_dump into the runtime APEX alongside linker in order to\nensure that they will be the same version even if the runtime APEX is updated.\n\nBug: 135772972\nChange-Id: Ic2eae31b6927eb0e8a62315ac141f50933c00bcc\nMerged-In: Ic2eae31b6927eb0e8a62315ac141f50933c00bcc\n"
    },
    {
      "commit": "151e74894fe7a4163eb74a32634e377e3c558826",
      "tree": "9dda89121f696a015aa3b0d08612f1c2ad00a107",
      "parents": [
        "fd4e66221a51567049ac417257bcf1ba526971b1",
        "530ab81e4215c86832294434f032306656c8f3b7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 06 17:17:51 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 06 17:17:51 2020 +0000"
      },
      "message": "Merge \"debuggerd: add an opt-out for OEMs that would rather collect core dumps.\""
    },
    {
      "commit": "843f7e645d6e6d2b4a2fb5a454c96aad04a9d1e0",
      "tree": "ca9f10b58da4d36ab35abc265b37fe24af0183e8",
      "parents": [
        "ad9d034e7d7c6b2be93cf5fe5e64556b685de6d2"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Feb 28 19:07:33 2020 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Feb 28 19:12:19 2020 -0800"
      },
      "message": "Create a ProcessInfo structure with the process-wide information from the crasher.\n\nWe\u0027re now passing around a couple of addresses for GWP-ASan in addition\nto abort_msg_address and fdsan_table_address, and I\u0027m going to need to add\nmore of them for MTE. Move them into a data structure in order to simplify\nvarious function signatures.\n\nBug: 135772972\nChange-Id: Ie01e1bd93a9ab64f21865f56574696825a6a125f\n"
    },
    {
      "commit": "530ab81e4215c86832294434f032306656c8f3b7",
      "tree": "12be5df654ad63e52c69e3ab7a9b9fc3626812fe",
      "parents": [
        "e20d3a006a17a25a8f7703d68e17ab114b0a94c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 16:17:19 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 25 09:28:24 2020 -0800"
      },
      "message": "debuggerd: add an opt-out for OEMs that would rather collect core dumps.\n\nOn userdebug/eng devices, check a system property to see whether we\nshould create tombstones or not. OEMs that would rather have core dumps\ncan set this property and configure /proc/sys/kernel/core_pattern\nappropriately.\n\nBug: https://issuetracker.google.com/149663286\nTest: set the property, cause a crash\nChange-Id: If894b4582a1820b64bdae819cec593b7710cb6e3\n"
    },
    {
      "commit": "f77f6f003c0c1c5e585ee5c4d9af79edfea2b831",
      "tree": "5bc607135b6e2a921ff57fe6098d791a6b97218a",
      "parents": [
        "e20d3a006a17a25a8f7703d68e17ab114b0a94c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 21 13:25:54 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 22 16:53:24 2020 +0000"
      },
      "message": "Remove various bits of dead code and unused workarounds.\n\nTest: treehugger\nChange-Id: I68fcd5da304d04ff4da3c3f3712fb79ce6b5791e\nMerged-In: I68fcd5da304d04ff4da3c3f3712fb79ce6b5791e\n"
    },
    {
      "commit": "e0b4bb1b2e239f3ea694d6d33f577ff5257723e7",
      "tree": "a8afee216256cfab73c2cd7306db355a45d5b2be",
      "parents": [
        "5ed0698b4194ac834f823d7aaa2d016c4029a890"
      ],
      "author": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Fri Feb 14 14:54:31 2020 -0800"
      },
      "committer": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Tue Feb 18 16:49:50 2020 -0800"
      },
      "message": "[GWP-ASan] Add GWP-ASan information to tombstones.\n\nGWP-ASan can provide information about a crash that it caused. Grab the\nGWP-ASan regions from the globals shared by the linker for crash-handler\npurpopses, pull the information from GWP-ASan, and display it.\n\nThis adds two regions:\n 1. Causality tracking by GWP-ASan. We now print a cause header about\n the crash, like `Cause: [GWP-ASan]: Use After Free on a 1-byte\n allocation at 0x7365bb3ff8`\n 2. Allocation and deallocation stack traces.\n\nBug: 135634846\nTest: atest debuggerd_test\n\nChange-Id: Id28d5400c9a9a053fcde83a4788f971e677d4643\n"
    },
    {
      "commit": "bd3ba782f25dbc357cf8ac75be340043a7fc03d6",
      "tree": "270ee86cafd1c0fe9d4c4ecbec34df0f1bace11c",
      "parents": [
        "60a55d91dcd4627991490141b9159a21924256fb"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Tue Jan 21 15:21:08 2020 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Feb 03 08:57:46 2020 -0800"
      },
      "message": "build crash_dump.policy files using Android.bp\n\nuse Android.bp instead of Android.mk to build and install the\ncrash_dump.policy files. This also allows mainline modules to pull\nthe files into their apex (dependency wasn\u0027t handled for Android.mk)\n\nBug: 147914640\nTest: build, examine generated filesystem\nChange-Id: Iae92d4f9d683ccfddf1716e7eb2877b7bff0c737\n"
    },
    {
      "commit": "f8c0350eaa34a71f91a4074da2c776439f653017",
      "tree": "8a0dcd1c3097e902799982c1ca9a3d8957fb7644",
      "parents": [
        "2148b252c283b4b8be43898dbffe0922842a5cbc",
        "627928e059c0b2ad22f4533fc15618ec26cca009"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 23 16:07:42 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 23 16:07:42 2020 +0000"
      },
      "message": "Merge \"debuggerd: remove the raw stack dump.\""
    },
    {
      "commit": "627928e059c0b2ad22f4533fc15618ec26cca009",
      "tree": "e715ad6fdeeb1815b669e92363b432d816ce9fbb",
      "parents": [
        "c940977dd9963525a9ffd47249f3896c9a5e24df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 22 14:12:47 2020 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 22 14:13:46 2020 -0800"
      },
      "message": "debuggerd: remove the raw stack dump.\n\nThis takes a lot of space, isn\u0027t convincingly useful, and makes it\nlikely that the far more valuable stuff that comes after it gets\ntruncated. So let\u0027s just drop it.\n\nBug: http://b/139860930\nTest: manual crasher, presubmit\nChange-Id: Ie417ffc07e3cb17e95fdb3d183f8c87de0f34b89\n"
    },
    {
      "commit": "55c7ed4e2e80b3cb42ce1da34b1c1270ecbf1cb7",
      "tree": "85d6f416be7767a095465b76c8a498d72cbc2a33",
      "parents": [
        "d6289bdf13bf606504169876305c4bbe496f8de8"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 17 14:06:19 2020 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 17 17:25:30 2020 -0800"
      },
      "message": "debuggerd_handler: increase thread stack size.\n\n1 page isn\u0027t enough to log on AArch64, and clean pages are free, so\nincrease the stack size to 8 pages.\n\nBug: http://b/144887737\nTest: treehugger\nChange-Id: I731b3bc27ab37f4b830a9478a04cd34d4f7648d3\n"
    },
    {
      "commit": "e40e4270e8fc539abfb11ba238ca6b3f308f0ab7",
      "tree": "e1ee46d104010b44a8fd75ca748601fcf04598e3",
      "parents": [
        "07892ea610a77bb67d33d3feed1cc79ad3cc8df5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jan 14 12:18:40 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Jan 14 12:18:40 2020 -0800"
      },
      "message": "remove deprecated bp \u0027subdirs\u0027\n\nnoticed some, so thought I would remove them everywhere here\n\nBug: N/A\nTest: N/A\nChange-Id: I2978673b158d6c253914ea22f7f0129e446a5f91\n"
    },
    {
      "commit": "a48b41bcb8629c14210aa3102669e03267353274",
      "tree": "2a4a21987109d0e044b7fd3287eb3ef2be066798",
      "parents": [
        "cd652ea3dc78c8e9e18490b3883c287e0c5c2d45"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Dec 13 14:11:04 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Dec 17 16:36:05 2019 -0800"
      },
      "message": "debuggerd: switch to using platform headers for DEBUGGER_SIGNAL.\n\nTest: treehugger\nChange-Id: Ie9736c4a077dba1029d2352bd94d47ce07323aec\n"
    },
    {
      "commit": "82a31b8749760670c70c8706864078216ad6b9bc",
      "tree": "3d98d739c802fd168dcd9635b6597195ca9af1e0",
      "parents": [
        "300448a88c52c38947086418770e9db5f5e173c1",
        "aadebd89827aacbd6ca458077bef5986c3fb691a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 19:04:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 19:04:55 2019 +0000"
      },
      "message": "Merge \"Add variadic logging to libdebuggerd internal.\""
    },
    {
      "commit": "aadebd89827aacbd6ca458077bef5986c3fb691a",
      "tree": "869da0e4fbfe5737b689fed51b03fcc1ca8fda1f",
      "parents": [
        "bace5995f1c1c6e006e94f6f235828a13ecda753"
      ],
      "author": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Mon Nov 18 15:17:18 2019 -0800"
      },
      "committer": {
        "name": "Mitch Phillips",
        "email": "mitchp@google.com",
        "time": "Tue Nov 19 09:49:05 2019 -0800"
      },
      "message": "Add variadic logging to libdebuggerd internal.\n\nGWP-ASan\u0027s crash information retrieval services requires a Printf()\nfunction (declared by the system/implementing allocator). In this\ninstance, because _LOG is called with additional arguments (the log_t),\nthis function must be wrapped to conform to printf_t defined by\nGWP-ASan.\n\nWe can easily wrap the variadic version.\n\nBug: 135634846\nTest: atest debuggerd_test\nChange-Id: I17209cd2b7455ce889e2f8194969f606cac329eb\n"
    },
    {
      "commit": "ba5351692e005cfa016414fb5472a2a12f95e31d",
      "tree": "22fc07fafed29bd95fd17177f65e3e46632d50de",
      "parents": [
        "dc2f874ed37fc747db24b34c29ea235020999c61",
        "bb2f941f5773d8a768b64bbec64bc2731c36e280"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 14:07:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 19 14:07:37 2019 +0000"
      },
      "message": "Merge \"Include PSTATE in tombstones on arm64.\""
    },
    {
      "commit": "bb2f941f5773d8a768b64bbec64bc2731c36e280",
      "tree": "4cce4a32b02e66bb0de7647596310a0a1930852d",
      "parents": [
        "bc420c4748efe73cbd18d83e45c6f9c52a9a7b86"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 18 12:36:50 2019 -0800"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Mon Nov 18 17:57:37 2019 -0800"
      },
      "message": "Include PSTATE in tombstones on arm64.\n\nA thread\u0027s PSTATE can sometimes be critical for understanding a crash,\nespecially with MTE and other new features that store per-thread state\nin PSTATE.\n\nBug: 135772972\nChange-Id: I1bee25bffe7eea395f04b6449dc9227298cf866e\n"
    },
    {
      "commit": "441054aa1e0deec7de29234ce1dd67aae8cc3e6e",
      "tree": "00581ed7b2afcd61a34b3e5e5eccb5bee9a2b062",
      "parents": [
        "896fb9e57af24adc9fa1b96874f7d0685dc39755"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Oct 15 16:53:11 2019 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Oct 24 10:53:14 2019 -0700"
      },
      "message": "Remove old logger_entry_v* formats\n\nlogger_entry and logger_entry_v2 were used for the kernel logger,\nwhich we have long since deprecated.  logger_entry_v3 is the same as\nlogger_entry_v4 without a uid field, so it is trivially removable,\nespecially since we\u0027re now always providing uids in log messages.\n\nliblog and logd already get updated in sync with each other, so we\nhave no reason for backwards compatibility with their format.\n\nTest: build, unit tests\nChange-Id: I27c90609f28c8d826e5614fdb3fe59bde22b5042\n"
    },
    {
      "commit": "ecc9b1bd7f9a650f3b2b9c3b7ff3135409788301",
      "tree": "39975bd56f5e3ae1bee77b4be8a346605c8786a6",
      "parents": [
        "c243e199361b8413a87f1a2788c34b55dcb59f30",
        "f10d4a15d2876d900c34bc8d9d784cd99371b413"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 17 21:33:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 17 21:33:46 2019 +0000"
      },
      "message": "Merge \"debuggerd_client_test: massively increase timeouts.\""
    },
    {
      "commit": "f10d4a15d2876d900c34bc8d9d784cd99371b413",
      "tree": "0163648dc422d0ea3749c7d9983948e1072e1d3d",
      "parents": [
        "cad2fc24292f12ad7671659863001ad29da50b42"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Oct 17 12:06:16 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Oct 17 12:09:49 2019 -0700"
      },
      "message": "debuggerd_client_test: massively increase timeouts.\n\ndebuggerd_client.race seems to have suddenly started to flake, for no\napparent reason. This doesn\u0027t seem to reproduce locally, so increase\nthe timeouts to rule out our test VMs being slow.\n\nBug: http://b/142571257\nTest: treehugger\nChange-Id: Ic54a78b8da36cb1163cec7e7976c73c3da628a30\n"
    },
    {
      "commit": "67d52aa0f684fe6fb898c2ccda1d7bb302d3a5e0",
      "tree": "bdbdac970f740a73148d7619a60133186e3a2392",
      "parents": [
        "9186612f9a53e3d1e77e8c272f3f6d15a2dc50cf"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Oct 07 23:28:15 2019 -0700"
      },
      "committer": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Thu Oct 10 14:54:35 2019 -0700"
      },
      "message": "[debuggerd] fix -Wreorder-init-list\n\nC++20 wants members to be ordered unlike C99.\n\nBug: 139945549\nTest: mm\nChange-Id: I3cbca589511c1e0bbc10c691949e18de77e16031\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "ec220cd877f098b647c55a1924054c2d20a93ece",
      "tree": "9004a42b004e71c02019ef402c42831be6486968",
      "parents": [
        "f0d17fb50ed749b577998618022b74b184d617b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 14:35:24 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 26 14:36:01 2019 -0700"
      },
      "message": "debuggerd: increase the default limit on tombstones to 32.\n\nWe\u0027re missing useful crashes, especially on hwasan builds.\n\nBug: http://b/140580637\nTest: run crasher\nChange-Id: Ib5d8d3bd3fc4d7fec77d0b10302e5595f97a3515\n"
    },
    {
      "commit": "11555f0961fd923feba9cd0e125eef4544bc72e8",
      "tree": "9bc2ff642187d9a5ce1f40779b37784e23aa617d",
      "parents": [
        "03642ad8b88a48fc22d714c9d0e4f2a368d356ac"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 20 14:18:55 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Sep 20 15:07:03 2019 -0700"
      },
      "message": "Increase timeouts.\n\nThere is still some flakiness, so increase the timeout values.\nAlso remove the TEMP_FAILURE_RETRY macro usage in TIMEOUT calls.\nThat macro disables the ability of the alarm code to interrupt\nthe system call.\n\nBug: 141045754\n\nTest: Unit tests pass.\nChange-Id: Ia3c95dccc3076a3fd5ef6432097a57e4ccee4df3\n"
    },
    {
      "commit": "172b0a083434980a56ac4d719f1c9496ec163740",
      "tree": "8168ea75c606c8aff96a27dcdacc9250e10f5446",
      "parents": [
        "ea378530d60d8bafb6e1a78392bc4fab6d9e085c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 18 17:48:30 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 18 19:05:25 2019 -0700"
      },
      "message": "Add TEMP_FAILURE_RETRY where appropriate.\n\nBug: 141045754\n\nTest: Ran unit tests in a loop on walleye and cuttlefish.\nChange-Id: I87b912e76889ed207ab17b862e4786ee44a382ba\n"
    },
    {
      "commit": "ab60668ef47166961cd356006114baf742567fdd",
      "tree": "dca1f1f23bd4ff8cc94852981897b8f4390d94c6",
      "parents": [
        "e5e9ee41d9de64db195095c2ed7a2474c2374a34"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 17 15:31:47 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 17 15:31:47 2019 -0700"
      },
      "message": "Allow getrlimit/ugetrlimit syscalls in tests.\n\nThe fdsan code uses getrlimit/ugetrlimit so need to allow that when\nrunning the debuggerd unit tests.\n\nBug: 141045754\n\nTest: Ran the offending tests hundreds of times without failure.\nChange-Id: Iece94f03e7895d61ca8a8f3ab17dce7e54ddf9cd\n"
    },
    {
      "commit": "6cad139bccfdd82418a87ac5b71e5667b0e48dfa",
      "tree": "47526f64243b20bb1a17f3981c6622e0ac4335dd",
      "parents": [
        "30cda267c0215c8023dfbdff606d9bb87ace751b"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 27 16:02:38 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Aug 27 16:09:32 2019 -0700"
      },
      "message": "Mark some tests as requiring root.\n\nBug: http://b/140123924\nTest: mma\nChange-Id: I3ad277179018631c50d9295cdb173dd9dfa7ac59\n"
    },
    {
      "commit": "8ad965ae5ef273fe6cabc4c808386008c4160e34",
      "tree": "aedb92b356856e8015812239ae640109140dfe48",
      "parents": [
        "9612e2767e1ae37fa2e1e0e0d27a992b9f9f7787"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Aug 22 15:19:44 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Aug 22 15:19:44 2019 -0700"
      },
      "message": "tombstoned: start immediately after /data is mounted.\n\nCatch as many early-boot crashes as we can by starting tombstoned\nimmediately after /data is mounted.\n\nBug: http://b/139864948\nTest: adb shell su 0 dmesg | grep \"starting service\"\nChange-Id: I7f8821102191a445e87020f3efa59a2e0620d9db\n"
    },
    {
      "commit": "44e343837f39b3dc2f256e02c4f2c968709f306d",
      "tree": "3cd8ef07516b0729336ddc681102ac8002e2007e",
      "parents": [
        "cccb573f93bd1e5b6f330af2f2431bedb0d3dc34",
        "1489e27bda2a6f90048bc296023fcdc809a0b4b6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 20 16:40:54 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 20 16:40:54 2019 +0000"
      },
      "message": "Merge \"Add wchan data to ANR dump\""
    },
    {
      "commit": "1489e27bda2a6f90048bc296023fcdc809a0b4b6",
      "tree": "a50a05273bcb3f808d782f89fe2e94430db465f7",
      "parents": [
        "cd22e3a6f6e530d6a1f3eb4fa3f65aae444d0410"
      ],
      "author": {
        "name": "Kalesh Singh",
        "email": "kaleshsingh@google.com",
        "time": "Sun Jul 14 12:15:35 2019 -0700"
      },
      "committer": {
        "name": "Kalesh Singh",
        "email": "kaleshsingh@google.com",
        "time": "Thu Jul 18 16:02:57 2019 -0700"
      },
      "message": "Add wchan data to ANR dump\n\nSince only privileged processes with CAP_SYS_ADMIN can read kernel\nstack traces from /proc/*/stack, we dump the waiting channels\ninstead to provide some insight as to where the process might\nbe stuck in the kernel.\n\nBug: 135458700\nFixes: 135458700\nTest: adb shell am hang; Check /data/anr/\u003canr-file\u003e for\n      wchan data.\nChange-Id: I9f13511ad89a259ce5e5465155db15d45d2c46d8\n"
    },
    {
      "commit": "481e8379d39440f8d94b17c8ebb8aa99c7c4433f",
      "tree": "7b0225e3ae3d190578fb3d8a927dc53e6672f3f3",
      "parents": [
        "c37f4a41990bb1f6e17cf4a56b8c00371d7054e1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jul 15 17:13:24 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 17 14:14:26 2019 -0700"
      },
      "message": "Add cause message when stack overflow is detected.\n\nTest: Ran new unit tests.\nTest: Ran crasher stack-overflow, crasher64 stack-overflow and verified\nTest: stack overflow cause is shown.\nTest: Ran stack overflow app and verified tombstone includes stack-overflow\nTest: message.\nChange-Id: I9bb01186dff5ed81c77d84b6aaedb5332ddd7256\n"
    },
    {
      "commit": "afc0ff7fe06aee9822fac97e52d1fba09c695d8b",
      "tree": "3164cf17fff2dcb5f501b1259febccba75e77626",
      "parents": [
        "c0349199db745ee53e8d1133ddfce57fccc69cc7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 26 15:08:51 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 26 15:08:51 2019 -0700"
      },
      "message": "Increase timeout to avoid flaky tests.\n\nAlso, print extra information when an error occurs.\n\nTest: Ran unit tests.\nChange-Id: I3404549db0ac18a4a82a99b2620556db96376bca\n"
    },
    {
      "commit": "5df504c5f8f6871f7ec79d735490176ba5179d2a",
      "tree": "487639f986921a2ae3cc5f6bace7da02b22911a6",
      "parents": [
        "0cd8102bbd12fc1ebe01e5efd139368936c190f9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 09 12:48:17 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 09 12:49:57 2019 -0700"
      },
      "message": "crash_dump: populate uid field.\n\nBug: http://b/132359035\nTest: manual\nChange-Id: I99d8446024fc2d9395132dea45f03317976a9b62\n"
    },
    {
      "commit": "39c5b8c21c5099a911548f89c18e17bacd1f9bcb",
      "tree": "d9a0d0f8fd78ae3f711fdb2d28738f5d12997193",
      "parents": [
        "2ddb8df2ef22514f1bf91fe73b99877d19b2a964"
      ],
      "author": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Thu Apr 18 16:07:33 2019 +0100"
      },
      "committer": {
        "name": "Misha Wagner",
        "email": "mishaw@google.com",
        "time": "Tue Apr 23 09:53:07 2019 +0100"
      },
      "message": "Add UID printing to tombstone headers\n\nThis is for Android Telemetry to be able to categorise the processes\nthat produce tombstones.\n\nTest: atest debugerd_test:TombstoneTest\n\nChange-Id: Ie635347c9839eb58bfd27739050bd68cbdbf98da\n"
    },
    {
      "commit": "4ae266ccbddbd0a6529248ecd1b324feab261c0d",
      "tree": "8bff2bcc0625cd0ee8f3667f170ac6a8779842f3",
      "parents": [
        "5c421695f0d6139632692645f755c79d9f163fc1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 03 09:27:12 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 18 15:37:52 2019 -0700"
      },
      "message": "Add indicator that an elf is memory backed.\n\nModify the unwinder library to indicate that at least one of the stack\nframes contains an elf file that is unreadable.\n\nModify debuggerd to display a note about the unreadable frame and a possible\nway to fix it.\n\nBug: 129769339\n\nTest: New unit tests pass.\nTest: Ran an app that crashes and has an unreadable file and verified the\nTest: message is displayed. Then setenforce 0 and verify the message is\nTest: not displayed.\nChange-Id: Ibc4fe1d117e9b5840290454e90914ddc698d3cc2\n"
    },
    {
      "commit": "371180bb7279747f9cd3edb36e22247d36c76ae5",
      "tree": "1874ec0590ef9a33e217f10453279b7f8554d43d",
      "parents": [
        "6e288634425a7e8f8481e22beb68e4d90ed792f9",
        "18cb6812474e00050efab19e242c8a04ed470bec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 23:29:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 23:29:04 2019 +0000"
      },
      "message": "Merge \"debuggerd: call setsid in our children.\""
    },
    {
      "commit": "18cb6812474e00050efab19e242c8a04ed470bec",
      "tree": "b957f5e34565d1a9ad6ea1e64e002109a7ec3f69",
      "parents": [
        "a853a2f8ec284776b7b6cf0d39c4f339889d86b9"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 16 13:17:08 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Apr 16 13:17:08 2019 -0700"
      },
      "message": "debuggerd: call setsid in our children.\n\nThere appears to be a kernel bug that causes SIGHUP and SIGCONT to be\nsent to the parent process group we spawn from if the process group\ncontains stopped jobs (e.g. the parent itself, because of wait_for_gdb).\n\nCall setsid in all of our children to prevent this from happening.\n\nBug: http://b/31124563\nTest: adb shell \u0027setprop debug.debuggerd.wait_for_gdb 1; killall -ABRT surfaceflinger\u0027\nChange-Id: I1a48d70886880a5bfbe2deb80d48deece55faf09\n"
    },
    {
      "commit": "e1d4648f4636a37c8e2d68ca4efacc2c05de9cc1",
      "tree": "5098c7c7c34dd946b6895260ec004420f7beae42",
      "parents": [
        "6aa0d7eaf83f93e842780ef85a1c50de37ebe6ee",
        "dd04c658c34c769107e13c106e0cd6df5d889da2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 16 12:28:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 16 12:28:25 2019 +0000"
      },
      "message": "Merge \"crasher: add execute-only memory (\"xom\").\""
    },
    {
      "commit": "dd04c658c34c769107e13c106e0cd6df5d889da2",
      "tree": "fe28b685002b53a80911fc34d5759a0207686dc6",
      "parents": [
        "f14652c30b8140a6e14970adeda4912063ad22c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 13:03:48 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 15 13:03:48 2019 -0700"
      },
      "message": "crasher: add execute-only memory (\"xom\").\n\nTest: `crasher thread-xom`\nChange-Id: Ia121848df966040968370e1e9cb840034d780e4f\n"
    },
    {
      "commit": "3336c7bce087d33cc9ab0b02139b39551539f8a6",
      "tree": "d975c73efb2d595789c75bab7e91121d731e7ec5",
      "parents": [
        "f4ccb804b6a1707089b6d3d1d48c59af5bedb36c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 08 17:18:24 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 08 17:18:24 2019 -0700"
      },
      "message": "Remove include of backtrace/Backtrace.h.\n\nSomehow the code was still including this include from libbacktrace.\nI think the libbacktrace include directory was coming from some\ntransitive includes. I verified that nothing in debuggerd is using\nthe libbacktace.so shared library.\n\nBug: 120606663\n\nTest: Builds, unit tests pass.\nChange-Id: I85c2837c5a539ccefc5a7140949988058d21697a\n"
    },
    {
      "commit": "b9cc4fbb268652744c812415cb2e5d1fbe04879a",
      "tree": "de4d1529be35bdb50b0d338d66c78ab76c9d4ab9",
      "parents": [
        "85b5fecec920208ec43b42488f08d4c2e5aaeda2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 05 18:23:32 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 05 18:23:32 2019 +0000"
      },
      "message": "Revert \"Check for data races when reading JIT/DEX entries.\"\n\nThis reverts commit 85b5fecec920208ec43b42488f08d4c2e5aaeda2.\n\nReason for revert: Breaks ART tests, reverting to investigate.\n\nChange-Id: I1bb905407e87cbd4f832646651133a9caf6fcfc8\n"
    },
    {
      "commit": "85b5fecec920208ec43b42488f08d4c2e5aaeda2",
      "tree": "f247629aaf617cc5fc287cf3eb2e6f076f6a635d",
      "parents": [
        "e346d03c2bf198ab25e926bc2c26dd9db53b87ba"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 23 18:06:13 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 29 14:01:32 2019 +0000"
      },
      "message": "Check for data races when reading JIT/DEX entries.\n\nUpdate the entries only when the list is modified by the runtime.\n\nCheck that the list wasn\u0027t concurrently modified when being read.\n\nBug: 124287208\nTest: libunwindstack_test\nTest: art/test.py -b --host -r -t 137-cfi\nChange-Id: I87ba70322053a01b3d5be1fdf6310e1dc21bb084\n"
    },
    {
      "commit": "7813345faa01a6e946a442d7ce640ca1c3a141a2",
      "tree": "2395c1e693f544150d9a26245ea68bb79a64d77c",
      "parents": [
        "9b1f1ee4cca5272fc545eedf3ded5ce3dc73f7b2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 14 13:44:38 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 26 08:04:40 2019 -0700"
      },
      "message": "Add BuildId to frame information.\n\nUpdate debuggerd to print BuildId information by default.\n\nBug: 120975492\n\nTest: New unit tests pass.\nTest: debuggerd -b \u003cPID\u003e shows build id information.\nTest: tombstones include build id information.\nChange-Id: I019b031113d0b77385516223c63455b868924440\n"
    },
    {
      "commit": "5e8d68c2b22553c44d64e41b96833da770d1f109",
      "tree": "ebafe8075730d9fcdc6925b97e3ac06efdb958e4",
      "parents": [
        "eecd5cc53255a2986b094ecca2fe26976dfce768"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Mar 15 15:10:24 2019 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon Mar 18 14:39:47 2019 -0700"
      },
      "message": "debuggerd_handler: demote abort on exec failure to log.\n\nIf a process is ptraced already, we might not be able to exec crash_dump\ndue to selinux. Since we can be called for non-fatal events, we\nshouldn\u0027t abort in that case.\n\nBug: http://b/128054996\nTest: treehugger\nChange-Id: I1442041caa7af908df2ab87b9e010c44082e7587\n"
    },
    {
      "commit": "3d67d347f5322ca6d4aeac790368bff1f50e27b1",
      "tree": "7f7972210500803c11055447dbe592fd6db236ee",
      "parents": [
        "d5345f58fdb11f9f362b00bbfd9d7b19ca659fcc"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Feb 27 18:00:37 2019 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Mar 05 13:05:36 2019 +0000"
      },
      "message": "Fix copy / move behaviour of Maps object.\n\nCurrently, moving or copying a Maps object leads to double free of MapInfo.\n\nEven moving a Maps object  did not prevent this, as after a move\nthe object only has to be in an \"unspecified but valid state\", which can\nbe the original state for a vector of raw pointers (but not for a vector\nof unique_ptrs).\n\nChanging to unique_ptrs is the most failsafe way to make sure we never\naccidentally destruct MapInfo.\n\nTest: atest libuwindstack_test\n      Failed LocalUnwinderTest#unwind_after_dlopen which also fails at master.\n\nChange-Id: Id1c9739b334da5c1ba532fd55366e115940a66d3\n"
    },
    {
      "commit": "852b64e5493c0c170ed17b0a4594b9f9f0de5cb2",
      "tree": "78a97bc7e42c39da29e9be5bc010b3acaaff8604",
      "parents": [
        "d39f262aade690b799d3b40472bdc9e66c35e685"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Feb 20 17:01:24 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Sun Feb 24 22:04:11 2019 +0000"
      },
      "message": "Fix libdexfile dependencies to avoid direct dependency on libdexfile_external.\n\nIt should be dlopen\u0027ed lazily by libdexfile_support now.\n\nAlso change debuggerd_test to not link libunwindstack and its dependencies\nstatically - the static libs can overlap with the dynamic ones.\n\nTest: mmma system/core/debuggerd/\nTest: atest debuggerd_test\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work)\nBug: 124827589\nBug: 123186083\nChange-Id: I9e7bf9bcbae499af4e1be4c9854bce441e2a7b55\n"
    },
    {
      "commit": "8954d0bc9876b6fbe15f480ad0eae359f317a076",
      "tree": "84a858b5f522665541075a522bd005030ab03b01",
      "parents": [
        "e8510cec19bd9dc01f8a82f56328131cdf0c9b68",
        "8e0af5f1b506fb668517dbf79ec059aae494b366"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Feb 19 20:53:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 19 20:53:01 2019 +0000"
      },
      "message": "Merge changes from topic \"base_cmsg\"\n\n* changes:\n  adb: switch to base::{Send,Receive}FileDescriptors.\n  debuggerd: switch to base::{Send,Receive}FileDescriptors.\n  base: add helpers for sending/receiving file descriptors.\n"
    },
    {
      "commit": "5f87bbdb0afebac6ad46a849e94460dbd0c41014",
      "tree": "76a7aa549d99ab2ce50106c3064b2c5dd858f470",
      "parents": [
        "14f9500a35390e2e0252ccc1c03c9c850444e2b6"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 09 17:01:49 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Feb 13 13:21:54 2019 -0800"
      },
      "message": "debuggerd: switch to base::{Send,Receive}FileDescriptors.\n\nBug: http://b/12204763\nTest: debuggerd_test\nChange-Id: I0be40916214de51ab36fd6bd6d44090a84312e51\n"
    },
    {
      "commit": "e31cfb609d1be26c6051ff6aae5bab3616222a41",
      "tree": "7d1fbac74a996ded35a26b46fdf42327a10986ba",
      "parents": [
        "1d7966bd462462224e4c0f9cb260eb5871a02dc8"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Feb 05 04:59:07 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Feb 12 22:03:48 2019 +0000"
      },
      "message": "Use new static target for libdexfile_support.\n\nThis is necessary since the dynamic one is now using dlopen(), which isn\u0027t\navailable in static builds.\n\nTest: m\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work)\nBug: 123403798\nBug: 123186083\nChange-Id: I06a9cdfe7e7cc01427ffd54b66c8ebab88782260\n"
    },
    {
      "commit": "60eb19795bbcdeba162de104af1bcd14478ef230",
      "tree": "1b80fd0f80e32cda479f538279de6a34c7ed4262",
      "parents": [
        "9f5e9978c2b58ebdcc3d253c6e04e31e5b90a0e4"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 15 15:18:43 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 29 17:57:14 2019 -0800"
      },
      "message": "Replace libbacktrace with libunwindstack directly.\n\nSmall modifications to the dump_stack method and added unit tests to\nverify the output.\n\nBug: 120606663\n\nTest: Unit tests pass, debuggerd run on processes on target.\nChange-Id: Id385a915b751abda3dd6baebed6c3ce498c3bf6e\n"
    },
    {
      "commit": "3fa9a59ea323e6b59e1c9292e088071b9e85a4b8",
      "tree": "a1f37c9629f1f540a7e1e17689b04a8a21f9c87a",
      "parents": [
        "6cc741ec9ac58ca55a3a137c0c8082683d2a0220"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Jan 08 06:29:22 2019 -0800"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Jan 08 06:29:22 2019 -0800"
      },
      "message": "debuggerd: Fix return type in error case\n\nWith our method returning \u0027bool\u0027, a \"return -1\" is interpretted\nas \u0027true\u0027.  We change this to an explicit \u0027false\u0027, as desired.\n\nTest: TreeHugger\nChange-Id: I222858b797bc4242a2dc6d4fe81df3d2586d055a\n"
    },
    {
      "commit": "4175cee3cc6feda91d0ffaa5301b2119089a24f6",
      "tree": "c20feee1fe9a2f3e9a27263632c1ac73a8639b7f",
      "parents": [
        "79f304771c34819768c44dd5562024e5db5cd19e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 04 13:57:09 2019 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Jan 04 13:57:09 2019 -0800"
      },
      "message": "debuggerd_client: resolve tid to tgid when dumping Java stacks.\n\nBug: http://b/121438213\nTest: debuggerd_test32\nTest: debuggerd_test64\nChange-Id: I4d114c8b0c4586ba64de5b45b47b0ec5c10354f8\n"
    },
    {
      "commit": "bb4f2b440a5c970a3a522e94d69dae5fbaea81c6",
      "tree": "0792f75b20c1a2cfd8edc400b4ca7e8be0cf47bf",
      "parents": [
        "1baa19b1a6bec9c0b1b067eef378646c62d9bf1b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Dec 19 14:28:33 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Dec 19 21:04:35 2018 +0000"
      },
      "message": "Revert^2 \"Use libdexfile external API in libunwindstack.\"\n\nThis reverts commit cacf5bf6bca7e9806739a27589d8b6101c567c32.\n\nReason for revert: Re-apply with proper fix for VNDK visibility on marlin and sailfish.\n\nTest: Manual repro of http://b/121110092#comment1 on reported branch\nTest: atest CtsRenderscriptTestCases\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests\nTest: Make image, flash, and reboot device.\nTest: Forrest cts/art/gce-all: https://android-build.googleplex.com/builds/forrest/run/L00300000240828791\nTest: Forrest cts/bionic/gce-all: https://android-build.googleplex.com/builds/forrest/run/L05600000240682947 (shows 27/2958 failed, but it doesn\u0027t pass on Blackbox either: http://screen/xbjioEf6UgR)\nTest: Forrest cts/renderscript/gce-all: https://android-build.googleplex.com/builds/forrest/run/L66200000240680523\nBug: 119632407\nChange-Id: I601aa97eac8127e30d753405f8bc1fc4ae7f849f\n"
    },
    {
      "commit": "cacf5bf6bca7e9806739a27589d8b6101c567c32",
      "tree": "0dbf54f3f0647596c5dc00bca91c67a85aed35c7",
      "parents": [
        "8fd4435d532846b46fe47e52a6825a050d1af13c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Dec 19 00:09:41 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Dec 19 00:11:04 2018 +0000"
      },
      "message": "Revert \"Use libdexfile external API in libunwindstack.\"\n\nThis reverts commit 444e23d2fc6d7c6f799ff9e2f69c1a82d2960c5b.\n\nThe rest of the topic doesn\u0027t need to be reverted.\n\nReason for revert: Breaks renderscript on marlin and sailfish.\n\nTest: Manual repro of http://b/121110092#comment1 on reported branch\nTest: \"atest CtsRenderscriptTestCases\" on that branch\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests\nTest: Make image, flash, and reboot device.\nBug: 121110092, 119632407\nChange-Id: If1976b19ce386c95bc5bd4fd6d523745c167de18\n"
    },
    {
      "commit": "ac64da1637cb5078a02868a44eaad9b474f0aa8a",
      "tree": "06d8b0d129d1c0c97f2e6b12e99e4e380f659be7",
      "parents": [
        "010a85afe5783fa180d39bc0164ad76ac4de4675",
        "6f4644d15b3df1a9be92348f23a62282a8b332f6"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sat Dec 15 00:12:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 15 00:12:24 2018 +0000"
      },
      "message": "Merge \"libdebuggerd: add timestamp to tombstones.\""
    },
    {
      "commit": "6f4644d15b3df1a9be92348f23a62282a8b332f6",
      "tree": "d96da52cef9a7b0d4e55cf8053139aff8b777e06",
      "parents": [
        "8f1fcd5b943121e7b021c50468e01e71adb9d514"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Dec 14 13:05:12 2018 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri Dec 14 13:29:52 2018 -0800"
      },
      "message": "libdebuggerd: add timestamp to tombstones.\n\nBug: http://b/120099273\nTest: debuggerd_test\nChange-Id: I457506f8d9920d969e1eba0265f85693b484f1a9\n"
    },
    {
      "commit": "444e23d2fc6d7c6f799ff9e2f69c1a82d2960c5b",
      "tree": "259892bf4c90f2281bc7883352ff89f0ed4b148e",
      "parents": [
        "8f3ed624226941740ee0a818096dbda095badae8"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 15 18:08:06 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Dec 13 17:58:23 2018 +0000"
      },
      "message": "Use libdexfile external API in libunwindstack.\n\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests\nTest: Make image, flash, and reboot device.\nBug: 119632407\nChange-Id: I370f089a1b20ba432e136818b4325d46f99df708\n"
    },
    {
      "commit": "3c59cb8420ba9dc9c81e2d8a55cb0e884403dfc0",
      "tree": "649313b64707ccacb27b38e51e509b0d13a15cf5",
      "parents": [
        "67fe6f09d571401f5aff8c4ad4f814cb95089366"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 03 09:02:18 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 03 09:02:18 2018 -0800"
      },
      "message": "C++17 is the default now.\n\nTest: builds\nChange-Id: I6814455e9ad2cdcf99ad66de38a3ad0bfb440d80\n"
    },
    {
      "commit": "894da4e0fd3e1f6f986dbab86977d23ff690d982",
      "tree": "1d8430185d4ca6c8cc03e0e88a48fd0121937d87",
      "parents": [
        "e2e519ea2f3b72d06415fd6a564a9304a5c24d67",
        "8ac2f27cc2fa5fbfc1bbd1cede906d254a77f862"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 01:48:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 01:48:29 2018 +0000"
      },
      "message": "Merge \"tombstoned: fixed tombstones failed issue\""
    },
    {
      "commit": "8ac2f27cc2fa5fbfc1bbd1cede906d254a77f862",
      "tree": "a5f1611baa7cc9beb19b7c6eaccc850528480a0b",
      "parents": [
        "66a6d8877cdaf169a24e0e7157f50b551a7b70a2"
      ],
      "author": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Sat Nov 24 17:12:33 2018 +0800"
      },
      "committer": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Wed Nov 28 14:00:27 2018 +0800"
      },
      "message": "tombstoned: fixed tombstones failed issue\n\nThere is a problem about tombstone, which it will fail to\ngenerate tombstone file in some scenarios due to socket\ncommunication exception.\n\nReproduce step:\nstep 1: reboot device\nstep 2: ps -ef |grep zygote , get the pid of zygote64\n(Attention: zygote64 should never been killed or reboot,\notherwise we can get the tombstone file)\nstep 3: kill -5 pid of zygote64\nstep 4: cd data/tombstones/, and could not find the tombstone\nfile of zygote64.\n\n[Cause Analysis]\n1. There are following logs by logcat:\n11-19 15:38:43.789   569   569 F libc : Fatal signal 5 (SIGTRAP),\ncode 0 (SI_USER) in tid 569 (main), pid 569 (main)\n11-19 15:38:43.829  6115  6115 I crash_dump64: obtaining output\nfd from tombstoned, type: kDebuggerdTombstone\n11-19 15:38:43.830   569  5836 I Zygote  : Process 6114 exited\ncleanly (0)\n11-19 15:38:43.830   777   777 I /system/bin/tombstoned: received\ncrash request for pid 569\n11-19 15:38:43.831  6115  6115 I crash_dump64: performing dump of\nprocess 569 (target tid \u003d 569)\n...\n11-19 15:38:43.937   777   777 W /system/bin/tombstoned: crash\nsocket received short read of length 0 (expected 12)\n2. The last log was print by function of crash_request_cb in\nfile of tombstoned.cpp, following related code:\n  rc \u003d TEMP_FAILURE_RETRY(read(sockfd, \u0026request, sizeof(request)));\n  if (rc \u003d\u003d -1) {\n    PLOG(WARNING) \u003c\u003c \"failed to read from crash socket\";\n    goto fail;\n  } else if (rc !\u003d sizeof(request)) {\n    LOG(WARNING) \u003c\u003c \"crash socket received short read of length \" \u003c\u003c rc \u003c\u003c \" (expected \"\n                 \u003c\u003c sizeof(request) \u003c\u003c \")\";\n    goto fail;\n  }\n\nTombstoned read message by socket, and now the message length is\nzero. Some socket communication exception occurs at that time.\nWe try to let crash_dump resend the socket message when the\ncommunication is abnormal. Just as this CL.\n\nTest: 1 reboot device\n      2 ps -ef |grep zygote , get the pid of zygote64\n       (Attention: zygote64 should never been killed or reboot,\n       otherwise we can get the tombstone file)\n      3 kill -5 pid of zygote64\n      4 cd data/tombstones/, and could find the tombstone file of\n       zygote64.\n\nChange-Id: Ic152b081024d6c12f757927079fd221b63445b18\n"
    },
    {
      "commit": "df3cec925fce86b99c6ef6a88decd1870c55dcc0",
      "tree": "09f603f5acc2efa45251aa5e5babd76d7025c887",
      "parents": [
        "ee9d6382d13411614c27b25de8c97273f066a8d3"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Mon Nov 19 10:43:47 2018 -0800"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Nov 27 09:00:54 2018 -0800"
      },
      "message": "Tombstone support for XOM-related SIGSEGVs.\n\nMake XOM related crashes a little less mysterious by adding an abort\ncause explaining the crash.\n\nBug: 77958880\nTest: Abort cause in tombstone for a XOM-related crash.\n\nChange-Id: I7af1bc251d9823bc755ad98d8b3b87c12bbaecba\n"
    },
    {
      "commit": "9f1cf25332e33247b1b036ce07b32d09e076c346",
      "tree": "a20e2aaa8b6fa38a292bb7dd90dfadecf68b2ebd",
      "parents": [
        "e77298ce9fd0fbb6e94108f4c49c11f5efa856e1"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Nov 12 12:45:59 2018 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Nov 14 09:35:34 2018 -0800"
      },
      "message": "switch to using android-base/file.h instead of android-base/test_utils.h\n\nTest: compile\nBug: 119313545\nChange-Id: I4f7ad84743e974b4b4d1d7256088f6c8b749a237\n"
    },
    {
      "commit": "e26b8b0181337c436e0a2601b80c17dcdff96d0e",
      "tree": "8aeee25543d83a015c37d29bcbb834de2725c08e",
      "parents": [
        "3e3797a947e9aaeeaffd333630080e3a32c6f1c6",
        "08163cb0321aef9a8a154025649f62b0ae3c43ff"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 31 06:05:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 31 06:05:28 2018 +0000"
      },
      "message": "Merge \"debuggerd_fallback: fix fd leak.\""
    },
    {
      "commit": "08163cb0321aef9a8a154025649f62b0ae3c43ff",
      "tree": "047f94c980f123e2c7d26df9b961d4005b04253e",
      "parents": [
        "b59a38d34328eb8f297b965bec84233bd7fa6a25"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 30 15:21:10 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Tue Oct 30 15:33:58 2018 -0700"
      },
      "message": "debuggerd_fallback: fix fd leak.\n\nPreviously, when we received simultaneous dump requests, we were CASing\na file descriptor value into a variable, and then failing to close it\nif the CAS failed.\n\nBug: http://b/118412443\nTest: debuggerd_test\nChange-Id: I075c35a239426002eb9416da3d268c3d1a18e9d2\n"
    },
    {
      "commit": "461baeb44e5d8d583c01bc87c8e6510fa0af6343",
      "tree": "b1ece84135a4be5d62f0c0dcc9c69e3f1c36d0d7",
      "parents": [
        "b31badf70f7734d1ef6d1a95ee73dc57ebd2b19d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 26 11:22:40 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 30 09:22:12 2018 -0700"
      },
      "message": "Update for v4.19 kernel headers.\n\nAdd new trap type TRAP_UNK.\n\nTest: Unit tests pass.\nChange-Id: I2b9cb8ddd1d993aa4819831aaca34f8da4286b52\n(cherry picked from commit ead88bc88e567182b3c6ae5fd2f17730f55ec3f3)\n"
    },
    {
      "commit": "8395de69278a883317b75347b00f4aa39db05419",
      "tree": "b58d8169dc44b471dfac4c562a2249fea21d2daf",
      "parents": [
        "f86e85cb0afbf2453da1777e79017594cbbe71ae"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Sep 24 13:03:25 2018 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Sep 24 13:18:22 2018 -0700"
      },
      "message": "Fix two clang-tidy issues in crasher.cpp.\n\nTEMP_FAILURE_RETRY\u0027s result was unused for the call to read(), so now\nmark it as such to silence a possible unused result warning. For\n__read_chk(), this function is an internal implementation detail of\nFORTIFY in Bionic. Under clang-tidy, FORTIFY checks are actually\nremoved, so this now results in an unknown function being called. The\ncode should not be explicitly depending on an implementation detail, but\nwe can just suppress the failing case to retain test coverage of the\nactual implementation.\n\nBug: http://b/110779387\nTest: Build using WITH_TIDY\u003d1\nChange-Id: If83ac1d6f3b6dc32c0d0fb56d8e675e53b586f78\n"
    },
    {
      "commit": "2d4b48d1552423f2b0e314fefbf2b4e93cd63ca5",
      "tree": "1b02a0ca161f37c346a57190917c363cc514e463",
      "parents": [
        "cf7d0e85d4cb1ccf2b45a00ec55218c31d7f897f",
        "8d44b14543fad2384c62f4d5805490fe67bc8fdd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 19 20:50:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 19 20:50:31 2018 +0000"
      },
      "message": "Merge \"crash_dump: annotate intended fallthrough.\""
    }
  ],
  "next": "8d44b14543fad2384c62f4d5805490fe67bc8fdd"
}
