)]}'
{
  "log": [
    {
      "commit": "f1932fd107f4a7a340cd520a91aed79975627427",
      "tree": "5db152de5b845498416c25c9cd5f4c2ca97f22a2",
      "parents": [
        "32017407fd667f66151cce115ff8198c3d53340a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Sep 16 22:36:55 2019 +0100"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 16 18:28:38 2019 -0700"
      },
      "message": "Fix LocalUpdatableMaps\n\nAvoid accessing nullptr of already deleted entry.\n\nAdd new unit tests that pass with the fix and fail without.\n\nTest: fixes unwinding in ART gcstress tests\nTest: All unit tests pass.\nChange-Id: Ideb00e2adc899904dd6aeb5dad3fb6fad150322d\n"
    },
    {
      "commit": "7aba5142e90f1f1ea64707c6c9b14ccd58c8ee79",
      "tree": "fe6c786bceea54134e7a570850cf74e74cdadf2e",
      "parents": [
        "a9ffef27e137458f8b12b10df2eeca58b99074ed"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 10:18:42 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Sep 03 13:32:51 2019 -0700"
      },
      "message": "Add test mapping to run the libunwind tests.\n\nCreated a special target, libunwindstack_unit_test, that doesn\u0027t\ninclude the test that dlopen\u0027s a shared library. It appears atest\ndoesn\u0027t understand how to handle the require keyword.\n\nAlso, move the shared library into the libunwindstack_test directory\nitself.\n\nTest: Ran atest libunwindstack_unit_test.\nChange-Id: I967919b1d74a08669b61d0363d80861685725609\n"
    },
    {
      "commit": "7138232f576a4f8941120239e5912501fb568ec7",
      "tree": "fb09c5bf499d69d5da4ce12c411b867ab3bd562e",
      "parents": [
        "cc746b51933624ea658a0656a51e0c9bf38b0f11"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 30 14:02:19 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 30 23:29:34 2019 -0700"
      },
      "message": "Add test of undefined return address.\n\nAdd a specific test that __libc_init is the last frame in a stack\nwhen run on device. In addition, it verifies that the return address\nregister is marked as undefined given the unwind.\n\nBug: 140008396\n\nTest: New unit test passes on arm/arm64 (taimen device).\nTest: New unit test passes on x86 (cuttlefish).\nTest: New unit test passes on x86_64 (modified bionic/tests/run-on-host.sh)\nChange-Id: Iefc151a7dbf52ab083c2bb78bad3d38b4e9e1254\n"
    },
    {
      "commit": "d128dccddf2f6538ab1a5775391202c1798f1c2f",
      "tree": "efcc4de60126ab6932e798d737732f2cb9997d05",
      "parents": [
        "8c8ce02e2eb2dc0671518423f2e6b0661013a514"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 27 13:41:50 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Aug 27 13:41:50 2019 -0700"
      },
      "message": "Fix unwind_reg_info tool.\n\nI was using the pc as the offest into the elf. That is obviously not\ncorrect. Added an optional OFFSET argument like in unwind_info along\nwith this change.\n\nTest: Verified that with no offest works, verified with a zero offset\nTest: works, verified with a non-zero offset results in a bad elf\nTest: on an elf without an offset.\nChange-Id: I4b6d02609627288e9f8a0eb26988d03adf95cb1f\n"
    },
    {
      "commit": "604ccb147cb7637533c52e5ab97e6d72c56a9527",
      "tree": "35155ea3451a11f8b3a1aea85437be7ee779ac91",
      "parents": [
        "bcc00c5c8f9d3ef52d6f39411e4c7c213ac88f91",
        "ea8e7d10d7178004aa8368410618e6f08b90d2fa"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 18 19:00:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 18 19:00:46 2019 +0000"
      },
      "message": "Merge \"Move to isolated testing.\""
    },
    {
      "commit": "ea8e7d10d7178004aa8368410618e6f08b90d2fa",
      "tree": "3aa77f10bcf13cad51a0ddd8964b710cee1b8db6",
      "parents": [
        "97c06703f6cd899d62b83ba8c7d2b226ad12da95"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 17 15:47:32 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 17 18:08:32 2019 -0700"
      },
      "message": "Move to isolated testing.\n\nModify the MapInfoCreateMemoryTest to work in the isolated mode.\n\nTest: Ran unit tests on host/target.\nChange-Id: I84e01d96e852acd813e0f203b4a207cfaf8ca556\n"
    },
    {
      "commit": "a74aae80338ed1bcc83127c09a85caad883b9cf3",
      "tree": "402d54af7a4bdc6cb8670a13ed87b95d7d8ff47b",
      "parents": [
        "97c06703f6cd899d62b83ba8c7d2b226ad12da95"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 17 12:54:34 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jul 17 13:49:37 2019 -0700"
      },
      "message": "Move to the libc++ demangler.\n\nThe previous versions of the libc++ demangler crashed on bad input.\nHowever, the new version passes a fuzzer and has a lot of tests. Since\nit\u0027s more complete than the local demangler, use it instead.\n\nModified the expected output of an offline test since the new demangler\nhandles a case that didn\u0027t work before.\n\nVerified that the time it takes for the check_for_leak tests did not\nchange after this.\n\nBug: 136138882\n\nTest: Ran the unit tests.\nTest: Verified the __cxa_demangle function passes the fuzzer when run for\nTest: hours. Both the 32 bit and 64 bit version of __cxa_demangle were\nTest: fuzzed using external/libcxxabi/fuzz.\nChange-Id: I10c06b589d57c36d89dbecba020b1ef2da69634a\n"
    },
    {
      "commit": "249c90ff17296fe2a46213d65a05c41928c478f8",
      "tree": "7b44343e64a204c60777b3ae5d3fafda1a82967f",
      "parents": [
        "463773b733e6c24c94fe2ffb46b6e00224d89e58"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Jul 05 16:48:04 2019 +0100"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 09 10:22:36 2019 -0700"
      },
      "message": "Fix missing load bias.\n\nThere are binaries that have non-executable LOAD with p_offset\u003d0.\n\nE.g.,\n\nProgram Headers:\n  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align\n  PHDR           0x000040 0x0000000000400040 0x0000000000400040 0x0002a0 0x0002a0 R   0x8\n  INTERP         0x0002e0 0x00000000004002e0 0x00000000004002e0 0x00001c 0x00001c R   0x1\n      [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]\n  LOAD           0x000000 0x0000000000400000 0x0000000000400000 0x0059e0 0x0059e0 R   0x1000\n  LOAD           0x006000 0x0000000000406000 0x0000000000406000 0x10f2b05 0x10f2b05 R E 0x1000\n  LOAD           0x10f9000 0x00000000014f9000 0x00000000014f9000 0x70f634 0x70f634 R   0x1000\n  LOAD           0x1808f18 0x0000000001c09f18 0x0000000001c09f18 0x089fc8 0x0a7ab8 RW  0x1000\n  DYNAMIC        0x1864ce0 0x0000000001c65ce0 0x0000000001c65ce0 0x000240 0x000240 RW  0x8\n  NOTE           0x0002fc 0x00000000004002fc 0x00000000004002fc 0x000020 0x000020 R   0x4\n  TLS            0x1808f18 0x0000000001c09f18 0x0000000001c09f18 0x000010 0x000010 R   0x8\n  GNU_EH_FRAME   0x11abde8 0x00000000015abde8 0x00000000015abde8 0x14484c 0x14484c R   0x4\n  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10\n  GNU_RELRO      0x1808f18 0x0000000001c09f18 0x0000000001c09f18 0x05c0e8 0x05c0e8 R   0x1\n\nTest: host libunwindstack_test passes.\nTest: Modified unit tests and new offline test.\n\nChange-Id: I3992f712be238c7d4109556580b5dcc71175fe19\n"
    },
    {
      "commit": "7e21eba5b7691b09b4bfa63cbfc6e442df574a17",
      "tree": "620fc2a08107465a590f4c5dbb4aa7891113b241",
      "parents": [
        "2226fe6ddfec465b1b76d7070937a27a7d0a505d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 20 16:16:42 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 20 16:18:57 2019 -0700"
      },
      "message": "Switch case to suite to follow new gtest naming.\n\nBug: 135528735\n\nTest: All unit tests pass.\nChange-Id: I1f3dc6fe381ec557b6b7bc5cb1c58d210efa63da\n"
    },
    {
      "commit": "d1d973be1214985221526bcaeb4d3fe7a02fd2f8",
      "tree": "8bae876b56b9ad1f30cb6d6ec6012ecd8855dbae",
      "parents": [
        "4a8d436ad199ca1b7e5f8de8da6967b97c9b3f6e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 19 18:41:37 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 19 18:51:31 2019 -0700"
      },
      "message": "Fix potential race condition.\n\nFound when I noticed that the unit tests segfaulted every once in a while.\n\nTest: Ran all unit tests 1000 times. The crash usually happens before 100 runs.\nChange-Id: I1c8d2e3637400dc80f273f3677f4c94b0dbeac9d\n"
    },
    {
      "commit": "6b95a0e9993ac6563476b0489c1ef982f8412f21",
      "tree": "4a1b2a73b520c3c2051640c887c69f1486dfc6c9",
      "parents": [
        "1d7f3b4f4e4bda94cc1a9b6e4291b414b97a3180"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Tue Mar 12 17:50:52 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 11 12:09:18 2019 -0700"
      },
      "message": "Internalize subclasses of Memory\n\nThere are many subclasses of the Memory class and the overwhelming\nmajority of them don\u0027t need to be exposed externally. We move all of\nthem to internal headers except MemoryOfflineBuffer, which moves to a\nseparate header. This dramatically reduces the exposed API surface and\nmakes the code more modular.\n\nAlso, remove the Offline code from libbacktrace. It\u0027s not used any where.\n\nTest: Unit tests pass, clean tree still builds\nChange-Id: I55dacdf080daba0bfe65c1ad53a4b326bb482e83\n"
    },
    {
      "commit": "d49499d5c977f31fd9b76a76a69c1c83914ed681",
      "tree": "99d4de36465289c2bd4461ff05b4ad7b16cfbcb2",
      "parents": [
        "2184ecb8adf55ba61d54214508776f8f0ef0e18c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 10 18:37:32 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 10 18:39:38 2019 -0700"
      },
      "message": "Set elf_start_offset for invalid elf maps.\n\nAdd new unit tests to cover this case.\n\nBug: 133495043\n\nTest: New unit tests pass.\nChange-Id: I9ded5732c3c40197ebfddee3dcacc4aa07541ac0\n"
    },
    {
      "commit": "a4bdb984f98c32766b17f77aa17be0335add912f",
      "tree": "545a99047ebaf618d9a9252f567867b8b4fb1c45",
      "parents": [
        "41f690ba2adf53d79298c7a476690001f6f8f742"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 04 11:52:16 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jun 04 12:07:05 2019 -0700"
      },
      "message": "Display offsets for dex frames.\n\nWhen adding a dex frame, no offset is ever printed even if the dex data\nis coming from a non-zero offset map. Fixed so an offset is printed\nin this case.\n\nPrevious the line looked like this:\n\n  #17 pc 0000000000500d7a  /product/app/GoogleCamera/GoogleCamera.apk (com.google.android.libraries.camera.async.AndroidPriorityThread.run+10)\n\nNow looks like:\n\n  #17 pc 0000000000500d7a  /product/app/GoogleCamera/GoogleCamera.apk (offset 0x11d0000) (com.google.android.libraries.camera.async.AndroidPriorityThread.run+10)\n\nAdd new unit test for this case.\n\nBug: 134420076\n\nTest: Wrote new unit test, and verified a non-zero offset for dex file\nTest: data results in a frame with a non-zero offset.\nChange-Id: I58c134fda4fad5456ca0f1723192667a1ca5d509\n"
    },
    {
      "commit": "98aaf4cf086e2492796b11116e69e0ff01093663",
      "tree": "c5f671d2231570fd34066d5f916b9fed04a510b3",
      "parents": [
        "84235b7137942048dd814db6385917e0004a20de"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 03 11:13:17 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 03 11:13:17 2019 -0700"
      },
      "message": "Ignore memory from elf on /memfd:\n\nIn ART, some of the maps are /memfd:/jit-cache and it triggers the warning\nabout unreadable elf files. Do not set the elf from memory not file\nflag in this case.\n\nBug: 131909548\n\nTest: New unit tests pass.\nTest: No warnings dumping stacks with this change done.\nChange-Id: Ifba5e65da609525ded75430da173c614f6e4801e\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": "d11ed86d65e870c5ea0d4918693376d474dbfe7d",
      "tree": "3ff56343799a7a26dc1a6ed4676404704ab46824",
      "parents": [
        "1a17b09174b47e08b13077f803081918b13c0722"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 11 19:45:35 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 12 17:23:18 2019 -0700"
      },
      "message": "Fix pc/function name for signal handler frame.\n\nThis refactors the step function slightly to split it up into\ndistinct pieces since the code needs to handle a signal handler\nversus normal step slightly differently.\n\nAdd a new error for an invalid elf.\n\nModify libbacktrace code to handle new error code.\n\nBug: 130302288\n\nTest: libbacktrace/libunwindstack unit tests.\nChange-Id: I3fb9b00c02d2cf2cc5911541bba0346c6f39b8e6\n"
    },
    {
      "commit": "b626177d63decaa7fb0717502b49dea778fc3931",
      "tree": "e34729942c05dde43e61a67945f3944bcfcef8b0",
      "parents": [
        "3a6a01bdee62bbcaa930db8ad43df2c4b93b314e",
        "b9cc4fbb268652744c812415cb2e5d1fbe04879a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 06 17:09:10 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 06 17:09:10 2019 +0000"
      },
      "message": "Merge \"Revert \"Check for data races when reading JIT/DEX entries.\"\""
    },
    {
      "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": "1760b45709df4d925c3a131db0b443b585837703",
      "tree": "47319f0150088a01beddc3fe3b5eb5a3638e2b7f",
      "parents": [
        "25d42eeaa6ace4fc57be6580dfcf45c4785fdb6f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 03 14:14:30 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 03 14:51:51 2019 -0700"
      },
      "message": "Fix off by one reading build id.\n\nUpdate unit tests and add new build id displaying in offline unwinds.\n\nBug: 129873279\n\nTest: All unit tests pass.\nTest: Verify that debuggerd displays build id properly.\nChange-Id: I97f4a204842447a20c812f535a458155b937d5e1\n"
    },
    {
      "commit": "59c70a5b755542e894d44389862917519143bb4a",
      "tree": "393fa78d1d721fc6f8a374552937313010e78113",
      "parents": [
        "52c6f1b6de1aa43d058207e253d84698d7e197b3",
        "85b5fecec920208ec43b42488f08d4c2e5aaeda2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 03 07:15:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 07:15:39 2019 +0000"
      },
      "message": "Merge \"Check for data races when reading JIT/DEX entries.\""
    },
    {
      "commit": "c312c9ac152be8b4ed1cd1455a1e7e2565a55ced",
      "tree": "41a9470bac9d083eb715804a268f3b1023172d76",
      "parents": [
        "3b25a17a8a844ad6d9da8448ff0794bc8f813e27"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 01 16:53:56 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Apr 01 16:56:09 2019 -0700"
      },
      "message": "Add minimal support for Dwarf 5.\n\nThis is not full support for dwarf 5, this merely treats a Dwarf 5\nversion as Dwarf 4. There are new dwarf ops that are not supported yet,\nbut this minimally support should allow unwinding to work if those\nops are not present.\n\nBug: 127355724\n\nTest: New Unit tests pass.\nChange-Id: I35b24fbcb15a64acd49e1e0b6890dff4456ee6fd\n"
    },
    {
      "commit": "22d8e8e12f1017570c9a9cf9ed154e4861506cbc",
      "tree": "3ce50562e23ea74e03784acf18a28a55a68a3a9b",
      "parents": [
        "0a887aa14c5bd187859c7558259df3901fee2342"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 29 12:34:58 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Mar 29 14:08:37 2019 -0700"
      },
      "message": "Remove sequential search from DwarfEhFrameWithHdr.\n\nSince there has never been a time that a sequential search has been\nnecessary, simply remove the sequential code and allow the DwarfEhFrame\nobject to be used in that case. If this does come up regularly, I\u0027m not\nsure that it wouldn\u0027t be more performant to use the DwarfEhFrame object\nregardless.\n\nBug: 129550015\n\nTest: libunwindstack unit tests, libbacktrace unit tests.\nChange-Id: I738e81accb9bc1e182168cddc9c0c22823e3369b\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": "02a6c448c32c37aae834bc25e92db97bfac32524",
      "tree": "9f884a8f20ca1043d4bf3b88fda6de4f004cd486",
      "parents": [
        "9a00f596d3376ed750eb58cf07c04d575b540c2b"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 11 14:43:33 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Mar 13 17:07:46 2019 -0700"
      },
      "message": "Add support for displaying soname in an apk.\n\nChanges:\n- Change GetSoname to always returns a std::string.\n- Added new unit tests for the soname printing.\n- Modify the GetElf() function to save the same elf when we see rosegment\n  linkers that split the read-only and read-write across a map. This\n  avoids creating multiple elf objects for each map.\n- Fixed a few offline unwind tests.\n\nBug: 29218999\n\nTest: Unit tests pass.\nChange-Id: Iad7c38b5c2957a8c5fd4ba94ebec335bafcad57d\n"
    },
    {
      "commit": "86f2d9d943aa61efea1193682f35d5daccf78681",
      "tree": "10d2467a3fbbeeb4cabec06ba06fd1e67db94b3f",
      "parents": [
        "1922a501bf70eb6fa0caa7571f18e92482f30ff9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 12 15:17:36 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Mar 12 16:00:55 2019 -0700"
      },
      "message": "Fix missing offset for apk.\n\nThe elf_start_offset field in a map_info was not set in one path.\n\nAdded new offline test for this, and update a few unit tests.\n\nBug: 128442792\n\nTest: New unit tests pass.\nChange-Id: I2c6ac1b5271a99aa0e8c4b6342a5970199185112\n"
    },
    {
      "commit": "6e96f68cf322eb2e3bc9175b40f1544875cba5a8",
      "tree": "01f5037e1b892385e6865e9055830bc7311226e6",
      "parents": [
        "fdfb9a0113abc4b91859f2e4dfd05b1c0ca018b0"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Mon Mar 11 12:35:41 2019 -0700"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Mon Mar 11 12:35:41 2019 -0700"
      },
      "message": "Add missing override keyword\n\nFuchsia builds with Clang, and it\u0027s a bit pickier about always using\noverride when it\u0027s appropriate.\n\nTest: None\n"
    },
    {
      "commit": "0e113851a5cec15ce62cf909ab4ef5d91287193e",
      "tree": "b141828e8d6cf4a846546dd9897b6b7ddacb8e40",
      "parents": [
        "e6413fcd94515421c1f17437b55574c645d658fb"
      ],
      "author": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Fri Mar 08 15:04:48 2019 -0800"
      },
      "committer": {
        "name": "Casey Dahlin",
        "email": "sadmac@google.com",
        "time": "Fri Mar 08 15:04:48 2019 -0800"
      },
      "message": "Add unistd.h to includes in Regs.h\n\nThis is required to use pid_t, but by luck nobody noticed its absence\nuntil the Fuchsia build.\n\nTest: Code now builds inside Fuchsia\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": "f31c70989b78ca40bda969195a4c92a1060789d5",
      "tree": "f9912f626a2a03256324419a56efd3df10ffb3c1",
      "parents": [
        "c6a2d7d5cd1e6ce36a19220c3922c5673c7b4ac5"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Wed Jan 30 17:43:22 2019 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Feb 11 01:38:08 2019 +0000"
      },
      "message": "procinfo: Read inode number from /proc/\u003cpid\u003e/maps\n\nAdjust all callbacks to include the inode number as well.\n\nFixes: 123532375\nTest: libprocinfo_test\nTest: libdmabufinfo_test\nTest: libmeminfo_test\n\nChange-Id: I71fd75d90d5ee44585011c5ae654a1dd7e185458\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "ce34d623512787126f6bd02ed32e25d46789d490",
      "tree": "379835a295c9525647a655da896a885dffea33c3",
      "parents": [
        "98910920ba5511a8185bc8c2776b4a191f0df87f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 30 10:55:27 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 30 12:09:11 2019 -0800"
      },
      "message": "Avoid signed extension of chars for build ids.\n\nAdded a unit test that fails before the change and passes afterwards.\n\nBug: 120606663\n\nTest: All unit tests pass.\nChange-Id: I054c7eac0c55abc3babe1d48a041f5819ad9db81\n"
    },
    {
      "commit": "f835ba6b66cc4ca31acd4f4a909b281a47a9df2a",
      "tree": "ebbf900c6710ac256198cac77092f6eccfbf5722",
      "parents": [
        "accdf0e9c777b24ccd8c2a5d03daa9886ebde71e",
        "7010ecb50d12507935c775f607106b13187edfb0"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 29 23:13:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 29 23:13:07 2019 +0000"
      },
      "message": "Merge \"Fix bug in unwind_info display of exidx frame.\""
    },
    {
      "commit": "9f5e9978c2b58ebdcc3d253c6e04e31e5b90a0e4",
      "tree": "6bcb5d4012f236bc93dcee4591449c7fe6d7241b",
      "parents": [
        "2cbdc561ad1b3c1565af8e1a30faa17dc35e9271",
        "1c993b76bf00c8ee39335092ccf89c259cc5c9cd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 29 19:23:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 29 19:23:23 2019 +0000"
      },
      "message": "Merge \"Allow to move frames out of Unwinder.\""
    },
    {
      "commit": "7010ecb50d12507935c775f607106b13187edfb0",
      "tree": "342d0522bddc853ac6abc81b3e9639970a99a966",
      "parents": [
        "0b6d56e68b884423e889cf76faf77ec07768bd01"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 28 14:47:24 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jan 28 14:51:19 2019 -0800"
      },
      "message": "Fix bug in unwind_info display of exidx frame.\n\nThe rosegment changed the load segments and broke the unwind_info printing\nof unwind information for the arm exidx frame.\n\nTest: Fixed and verified by dumping the arm exidx frame.\nChange-Id: I7270175e4dcb7fee2b96a16d168880ebd09f19b1\n"
    },
    {
      "commit": "1c993b76bf00c8ee39335092ccf89c259cc5c9cd",
      "tree": "5382302b75c2080a562db25e3c075d24cf390ce5",
      "parents": [
        "24a2c1a70c52840e06bd05aba9e8e1e357b527de"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Mon Jan 28 17:10:08 2019 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Mon Jan 28 17:11:07 2019 +0000"
      },
      "message": "Allow to move frames out of Unwinder.\n\nThis saves a copy for every unwind we do in heapprofd.\n\nChange-Id: Ife7aa1ce68831729d96ccd4c3e54ca531f98b6bc\n"
    },
    {
      "commit": "49047d711be157376b50a0d23e14c496653a234b",
      "tree": "34a6603ba9bec0ff91073e17636a2c3ec94db72a",
      "parents": [
        "ed7ca8bb1499bfa6ae2ed00fa5f19239d2b998f1",
        "b1c9c20eb270e54de95000d8923813c6a44fe467"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Jan 26 07:03:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 26 07:03:35 2019 +0000"
      },
      "message": "Merge \"Add GetPrintableBuildID().\""
    },
    {
      "commit": "ed7ca8bb1499bfa6ae2ed00fa5f19239d2b998f1",
      "tree": "9eceffa3fda081e29739ba2c02235ab6329ef0d8",
      "parents": [
        "ce17f19bc8bdf4a852b776382e39284b80f08715",
        "e1f7a63a4d94575ac154229f686e5fc215ff0c17"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Jan 26 06:45:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 26 06:45:39 2019 +0000"
      },
      "message": "Merge \"Add a few leak check tests.\""
    },
    {
      "commit": "b1c9c20eb270e54de95000d8923813c6a44fe467",
      "tree": "13c5c78c2be318f372a2d94932df9374c66c07a2",
      "parents": [
        "79f60a9bab8448d9f2f2953a329594a12642022f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 25 14:28:13 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 25 14:31:37 2019 -0800"
      },
      "message": "Add GetPrintableBuildID().\n\nThe GetBuildID() function returns the raw build id data, so add a function\nto get the printable hex version of the data.\n\nBug: 120606663\n\nTest: New unit tests pass.\nChange-Id: Ia5aefc97457efb08bbd30ea96cbb2d47ae59f954\n"
    },
    {
      "commit": "e1f7a63a4d94575ac154229f686e5fc215ff0c17",
      "tree": "7485844306ebb632ba752ef65f6957e042ed6301",
      "parents": [
        "c87d1ed61166d99ff8d1b5f4411056fc8ee65ee6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 24 12:22:03 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 25 12:35:19 2019 -0800"
      },
      "message": "Add a few leak check tests.\n\nThese tests are meant to replace the leak check tests from libbacktrace.\n\nBug: 120606663\n\nTest: Ran tests on host and target.\nChange-Id: I928b199304afc36b4bac78e9a2cd688b6f2910b9\n"
    },
    {
      "commit": "8306597e8f56b5a00f41b049bcb6cb734225b6c0",
      "tree": "3eac60bf075248962acbef69a2b84dd2685767e4",
      "parents": [
        "9ffdf5945d146ee6099048c504f6df7a367c2d4d",
        "c479e4e789df355a25508a0ed38791978253a2e3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 25 04:29:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 25 04:29:30 2019 +0000"
      },
      "message": "Merge \"Fix crash in libunwindstack.\""
    },
    {
      "commit": "c479e4e789df355a25508a0ed38791978253a2e3",
      "tree": "eaf739ac359890f90d55ac395a2c968a65338660",
      "parents": [
        "10b0a155ee73bedca2d1bd9fefac2727b42ebf08"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Jan 23 13:35:40 2019 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 24 16:29:36 2019 -0800"
      },
      "message": "Fix crash in libunwindstack.\n\nBug: 122657596\n\nTest: New unit test that crashes without this change.\nChange-Id: I5d978530a833345def94a58805d7ee93b23382bb\n"
    },
    {
      "commit": "cc8009ff04c13280998931cd5c8f05b517f7360f",
      "tree": "3c2e70664a51665e78dabba8e6bba1814a8951ca",
      "parents": [
        "c87d1ed61166d99ff8d1b5f4411056fc8ee65ee6"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Thu Jan 24 11:00:26 2019 -0800"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Thu Jan 24 11:11:15 2019 -0800"
      },
      "message": "libunwindstack: Move DwarfOp callback table to rodata section\n\nThere are currently two copies of DwarfOp callback tables in\ndata.rel.ro section, and that is 16KB of dirty memory per process on a\n64-bit platform.\n\nTo reduce memory usage, we introduce a layer of indirection so that\nall instances of DwarfOp can share a single callback table.  We also\nget rid of the pointers for op names in the callback table so that the\nentire table can be placed in rodata section.\n\nTest result shows 1MB saving on cuttlefish, and 750KB saving on a Go\ndevice (32-bit ARM).\n\nBug: 112073665\nTest: Boot on cuttlefish and a Go device.\nChange-Id: Idf90a513f37534ab1ef30d5742a9d3ea779f3661\n"
    },
    {
      "commit": "4aec66e8107bd2bb62a9f42f02abd29cb0445168",
      "tree": "e7c54572bda4f2a0ddb4dc48304bc16da7f42586",
      "parents": [
        "a5e0d695fa9ac8624681fb9effc51bbe6f75853e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 22 18:51:07 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 23 09:49:28 2019 -0800"
      },
      "message": "Fix memory leak in UnwinderFromPid object.\n\nActually make the destructor virtual so that objects in\nUnwinderFromPid get freed.\n\nAlso, explicitly make the DexFiles and JitDebug destructors virtual.\n\nBug: 123099840\n\nTest: Ran UnwindTest.local_from_pid thousands of times.\nChange-Id: I8bf11c0eb3587fa82f5f14f4723ea5c91da0fd46\n"
    },
    {
      "commit": "a5e0d695fa9ac8624681fb9effc51bbe6f75853e",
      "tree": "554d16219e3cf1e5168b6890d8922dcf28b3d60a",
      "parents": [
        "d35c4ccc4095dde9957ff83bfbecb1923ad0fbba",
        "bc6a7e51e4787bad7ab32c8ac4634eb99c477922"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 23 17:39:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 23 17:39:09 2019 +0000"
      },
      "message": "Merge \"Fix flaky signal tests.\""
    },
    {
      "commit": "33d4bb3d888a8151c39abc47bd4e218fbebbe258",
      "tree": "908f2119892dddbda9463532c9a0e55055013ac4",
      "parents": [
        "4d30819263b280b3fd3c6fbdc2706d71847c72e7"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jan 22 15:56:34 2019 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jan 22 15:56:34 2019 +0000"
      },
      "message": "Remove unused jit_debug unique_ptr.\n\nChange-Id: I39ed4fdd5695fefff235b6c40d83d9780fc5b75b\n"
    },
    {
      "commit": "bc6a7e51e4787bad7ab32c8ac4634eb99c477922",
      "tree": "83d9607d9966604906bb1bf3715adf1a6cf53022",
      "parents": [
        "b26b07d845e0522b4d9c4574c8f46bbeeb34d998"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 18 16:33:27 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jan 18 17:39:50 2019 -0800"
      },
      "message": "Fix flaky signal tests.\n\nThe signal tests that send a SIGUSR1 signal to a remote process, can\nlead to a case where the code winds up in a location for which the\nunwind information is not 100% accurate. This happens near the\nend of the atomic functions which manipulate the stack right before\nreturning, but do not have separate cfi instructions for those last\nfew instructions.\n\nAdd a new test type for the from_context test that will wait explicitly\nfor the global g_finish and not piggy back on the remote test type.\n\nBug: 122902885\n\nTest: Ran flaky tests 1000 times without failure on a taimen.\nChange-Id: I7d0c9b016e3a3a2c0c0949cf74af11d7785a008c\n"
    },
    {
      "commit": "bf373edc3c12a6e6df91770fde36075cc9d3e257",
      "tree": "f0281cb2e53007d0ef9b3c2455db292da53dc234",
      "parents": [
        "b94c2e52a674d43705045d0662e6a427aee2e873"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 16 17:23:39 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 17 20:14:00 2019 -0800"
      },
      "message": "Add caching of build id in MapInfo object.\n\nChange the GetBuildID function to return a std::string.\nAdded benchmark to check how long it takes to get the build id from\na file versus an elf object.\nAdded a way to get an elf without passing in a valid process_memory and\nadded tests for this.\n\nTest: New unit tests.\nChange-Id: I3029019767e0181c758d611fe635bc1bf72d6e8e\n"
    },
    {
      "commit": "eb0772ff4a4e174679b8df45f4437b46c6a7cb06",
      "tree": "c5ff92a98d81dde95b2ec8ad08f1499d020b47c0",
      "parents": [
        "61f4ceb55a207c1796a62fa9bdb7a5cf1248ddee"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 05 15:57:02 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jan 16 15:13:25 2019 -0800"
      },
      "message": "Add support for UnwinderFromPid object.\n\nThis object is able to be easily used from other code and can be used\nto replace the libbacktrace calls in other parts of the platform.\n\nAlso, demangle the function names when calling FormatFrame.\n\nBug: 120606663\n\nTest: Unit tests pass, debuggerd using this code directly passes unit\nTest: tests.\nChange-Id: Ifd8cf9bdd89174c1736810711d20e9f37f29b1bf\n"
    },
    {
      "commit": "cadacdf474e0b285803ad659a2dfa68b82e0b84d",
      "tree": "8fc3b0c3e49d0e6916ab3ba68e85e9ae49507c3e",
      "parents": [
        "173a02b4395d2cf7be2c9922b6d428cec2596367"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 15 19:10:49 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 15 19:10:49 2019 -0800"
      },
      "message": "Fix usage of Read instead of ReadFully.\n\nFound by inspection.\n\nTest: Builds and unit tests passes.\nChange-Id: I10b63534ae0a3bff9ce56e821c542fa69c15822d\n"
    },
    {
      "commit": "2677b802bf7ba044a6fc0c5d18d435ab9d6fb293",
      "tree": "82b096a7a78a6b6d6a82247caaf1d71cfe300a81",
      "parents": [
        "d75913a37180087171c93f06aea127e5ec89b94b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 23:26:33 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 21:05:50 2019 +0000"
      },
      "message": "Remove dependency on libdexfile internal header.\n\nAlso remove some tests for implementation details in the libdexfile API that\nare now covered by unit tests there (http://r.android.com/867370).\n\nTest: mmma system/core/{libunwindstack,libbacktrace} and run host gtests\nBug: 119632407\nChange-Id: Ie731bb929a564de56ce1c78385da12a43d0954ff\n"
    },
    {
      "commit": "b49289b43a3e64db5c4605080911f3d54e262fb6",
      "tree": "8a0b8ac03eab608fb330531f24e46611295ddff1",
      "parents": [
        "34f55bd45adc929937ed42504bb2b3181a71b904"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 15:26:32 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 23:25:25 2019 +0000"
      },
      "message": "Some minor updates in the libdexfile external API.\n\nTest: m\nTest: mmma system/core/{libunwindstack,libbacktrace} and run host gtests\nBug: 119632407\nBug: 120978655\nChange-Id: I919586ab503be3617e8a0604dfe48db331e7af94\n"
    },
    {
      "commit": "d76bd4c8d061fd9e87cf67cf41193c6449921160",
      "tree": "eb27f9fa3f7412ffa6fa78797b4e1a4c129d9c24",
      "parents": [
        "6cc741ec9ac58ca55a3a137c0c8082683d2a0220",
        "a39aaf91ebec78f59a371e356523b10453efb4b2"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jan 08 16:47:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 08 16:47:06 2019 +0000"
      },
      "message": "Merge \"Remove CHECK in AdjustEncodedValue.\""
    },
    {
      "commit": "a7d2ffa821ba8631a781b7b69942a33a64badbe9",
      "tree": "e7f8edd9215717710f79255a894f9b7f732d6bf5",
      "parents": [
        "bcede5f61a1251a2dc2e4f2b7b76b1a9290678a1",
        "80aba5494a2559a8546ca332ac906f4a5739dee1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 21 12:58:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 21 12:58:26 2018 +0000"
      },
      "message": "Merge \"Move DwarfCfaInfo::kTable from data.rel.ro to rodata\""
    },
    {
      "commit": "a39aaf91ebec78f59a371e356523b10453efb4b2",
      "tree": "9e03fce9f7a1ef80b99772bbc85f0427efc3a2c6",
      "parents": [
        "38ff80810a4c79e00afbd350e15da91226d0ae88"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 20 08:40:58 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 20 08:40:58 2018 -0800"
      },
      "message": "Remove CHECK in AdjustEncodedValue.\n\nThe CHECK(encoding !\u003d DW_EH_PE_aligned) can trip given the right\narguments. This check isn\u0027t necessary, since the code will return\nfalse in that case.\n\nAdd new unit test that tries all values to make sure no CHECK fires.\n\nBug: 120968571\n\nTest: Passes new unit test, and passes fuzzing that failed before.\nChange-Id: I062bcd18508c75cd3a4ca9dd12f922e25aafda8a\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": "1baa19b1a6bec9c0b1b067eef378646c62d9bf1b",
      "tree": "6adb6f73b0fc50feeacd00ebe3b0fc842b97dce9",
      "parents": [
        "613674049ffcebf5449e8b12fc6804d2881b7c86",
        "a09c4a6ff2806644c8baf0b93415078fa252b0e9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 19 17:11:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 17:11:53 2018 +0000"
      },
      "message": "Merge \"Fix offsets when shared lib split across maps.\""
    },
    {
      "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": "a09c4a6ff2806644c8baf0b93415078fa252b0e9",
      "tree": "27827d1b44afc8b9391eb42fca881e2ba837c3f4",
      "parents": [
        "8fd4435d532846b46fe47e52a6825a050d1af13c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 13 16:08:50 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 18 11:22:14 2018 -0800"
      },
      "message": "Fix offsets when shared lib split across maps.\n\nThe linker was modified so that a shared library has a read-only\nmap, then a read-execute map to represent the whole shared library.\nWhen backtraces are created, then the offsets are set incorrectly\nfor backtraces. For example, all backtraces wind up with an offset now,\nand a shared library loaded out of an apk shows the wrong offset.\n\nChanges:\n- Fix the FormatFrame function which was putting the offset before the\n  map name.\n- Refactor the Maps and MapInfo classes to keep track of the previous map\n  instead of all maps. This was the only map that was ever needed.\n- Modify the unwind_for_offline tool to capture both the read-only and\n  read-execute map when using the read-only segment option.\n\nBug: 120981155\n\nTest: Updated unit tests pass.\nTest: Unwinds on device don\u0027t show the offsets everywhere any more.\nChange-Id: I75b3727221be9c20316dfdcd7a1c6d242d7ce948\n"
    },
    {
      "commit": "80aba5494a2559a8546ca332ac906f4a5739dee1",
      "tree": "e4c8fa90c06eb47dc6f218afd524efa0446bf9c6",
      "parents": [
        "42c9e7e393583dfc243540e3d3b4ae7cdc46467f"
      ],
      "author": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Fri Dec 14 05:58:32 2018 -0800"
      },
      "committer": {
        "name": "Vic Yang",
        "email": "victoryang@google.com",
        "time": "Fri Dec 14 06:03:09 2018 -0800"
      },
      "message": "Move DwarfCfaInfo::kTable from data.rel.ro to rodata\n\nPages in .data.rel.ro are always dirty.  Move whatever we can to\n.rodata so that we reduce memory pressure.\n\nThe size of rodata, text, and data.rel.ro  sections of linker64 on\ncuttlefish before/after this change:\n  rodata: 0x170e4 -\u003e 0x17964 (+2176 bytes)\n  text: 0xec919 -\u003e 0xec919 (no change)\n  data.rel.ro: 0x9cf0 -\u003e 0x98f0 (-1024 bytes)\n\nTest: Boot cuttlefish\nChange-Id: Ib2fd2bb0afb50208d441731d8c31bc8f287272c3\n"
    },
    {
      "commit": "1d6969ccb90cf481ed3fd3d4b693fc095b0caec5",
      "tree": "da8070027c3411328a4f10171654c734e708acc8",
      "parents": [
        "42c9e7e393583dfc243540e3d3b4ae7cdc46467f",
        "444e23d2fc6d7c6f799ff9e2f69c1a82d2960c5b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 13:36:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 13:36:30 2018 +0000"
      },
      "message": "Merge \"Use libdexfile external API in libunwindstack.\""
    },
    {
      "commit": "065f15619528c95784db0c0193e8d36303e64b10",
      "tree": "e3c22c8b88216ec72a88cbc83295ebe916b41de0",
      "parents": [
        "583ce2deff4caa28fdadd80796cce41e6e7be99a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 13 09:33:45 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 13 10:41:08 2018 -0800"
      },
      "message": "Do not remove speculative frames in all cases.\n\nIf the first frame of an unwind is a totally invalid pc that\u0027s not in\nany map, a speculative frame is added. Rather than deleting this frame\nif no more unwinding is possible, leave it. This fixes a case where\nthe only frame you get is an invalid one, but the speculative frame\nwinds up in a shared library or somewhere else and gets removed.\n\nBug: 120505086\n\nTest: New unit tests to catch this case pass.\nTest: Verified original crashing program now emits two backtrace lines.\nChange-Id: I088dff21c057386dcdaeb3fc2578b24322683bd0\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": "583ce2deff4caa28fdadd80796cce41e6e7be99a",
      "tree": "80ddb0ae99831f16c5feaaa4d9244fdf60c2dbd1",
      "parents": [
        "78f94a39f24c2d8b5f988627d12b44a48a8b0bc7",
        "01040b10b2393014c2d49265b6ef75a1a2a459a7"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 13 03:18:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 03:18:58 2018 +0000"
      },
      "message": "Merge \"Fix handling of ro segments for embedded libs.\""
    },
    {
      "commit": "01040b10b2393014c2d49265b6ef75a1a2a459a7",
      "tree": "3b73550aec21a98a8e4ae302f9d567f9d2541c65",
      "parents": [
        "1fcf7f7d1f6e064ff2a129394d26b9d5a257206f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 10 11:13:23 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 11 19:16:29 2018 -0800"
      },
      "message": "Fix handling of ro segments for embedded libs.\n\nWhen a shared library is loaded directly from an apk, the new way the\nlinker splits a shared library into a read-only and execute segment\nbroke unwinding. Modify the code to handle this case.\n\nOther changes:\n- Modify the algorithm for finding read-only map entries. Before, the code\n  would search the entire map for the closest offset. Now it simply looks\n  at the previous map. I did this because the old code was too lenient and\n  might still work even if the linker changes. I want this to break if the\n  linker behavior changes so that I can analyze the change.\n- Update the tools to use PTRACE_SEIZE instead of PTRACE_ATTACH since\n  PTRACE_ATTACH doesn\u0027t work in all cases.\n- Small refactor of the GetFileMemory function.\n- Add new unit test cases and new offline unwind test cases.\n\nBug: 120618231\n\nTest: Ran new unit tests, ran original failing test.\nChange-Id: I4bade55cf33220d52f1d5e9b0cbbbcc8419669d4\n"
    },
    {
      "commit": "1b7b7979aff6c7ff2c1ebe057237f21263ff5c28",
      "tree": "2b38e6208f9bd34376a550cd93bd4b387348154e",
      "parents": [
        "1fcf7f7d1f6e064ff2a129394d26b9d5a257206f"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 10:34:33 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Dec 11 10:51:13 2018 -0800"
      },
      "message": "Fix performance-for-range-copy warnings\n\nBug: 30413223\nTest: make with WITH_TIDY\u003d1 DEFAULT_GLOBAL_TIDY_CHECKS\u003d-*,performance*\nChange-Id: I3ad102f2b0f971266d57488a3bd57d312f7ee3e6\n"
    },
    {
      "commit": "3f1f2e07abe919abe044d710aea644d0aebde56a",
      "tree": "030fc92defd72d83a7c5c3af173f08922221bf51",
      "parents": [
        "215d1d510ea1d1f076716ab9303f87cbcd8bcacc"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Oct 23 15:56:28 2018 +0100"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Dec 06 10:09:20 2018 -0800"
      },
      "message": "Add missing includes.\n\nTest: Builds.\nChange-Id: Ia8b79154902503cdd774dc3b4523466123b4324c\n"
    },
    {
      "commit": "a5913bdd07ae8c26306490c39a15a103a41671b4",
      "tree": "3f74255e7d52337954a3a37135c220ab74ec8976",
      "parents": [
        "675a70be413618353c2cbd1933da71d5f31a7173",
        "da459e56f7f29e92e56913c5b3f9191ed1fbcaa7"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Dec 06 10:57:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 10:57:26 2018 +0000"
      },
      "message": "Merge \"Read .note.gnu.build-id.\""
    },
    {
      "commit": "da459e56f7f29e92e56913c5b3f9191ed1fbcaa7",
      "tree": "9d354f01a8aaaf57bdca729d1887fb91d9ff314f",
      "parents": [
        "66a6d8877cdaf169a24e0e7157f50b551a7b70a2"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Nov 23 16:56:17 2018 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Dec 05 14:13:30 2018 +0000"
      },
      "message": "Read .note.gnu.build-id.\n\nThis will be used by heapprofd to allow us to correlate build ids with\nmemory leaks in libraries and binaries.\n\nTest: m\nTest: host libunwindstack_test\nTest: run unwind_info against my phone\u0027s libc.so (32/64) and compare\n      to readelf Build ID output.\n\nBug: 120186412\n\nChange-Id: I3cefd6cce9a8733509bf35b7175eb0f967783477\n"
    },
    {
      "commit": "ef6401091fbd047abcf08511f2d4d0b3a52c903f",
      "tree": "9cadbf8df813ef9a14c7f8d9b643dabffcab8697",
      "parents": [
        "939271895058af7e7b644ddc21d5d679f68f842e"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 14 15:36:45 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Nov 28 13:04:58 2018 -0800"
      },
      "message": "Add support for caching small reads.\n\nAdd benchmarking to verify this is faster.\n\nTest: Ran unit tests.\nChange-Id: I1487114331f4581ec2368e56c4f18c6e3e6bcc7d\n"
    },
    {
      "commit": "5565906732d4f9309f3016c16eb6e1f508982380",
      "tree": "26a954ecd3b60d635939628d2be3eb7eef6ad0e1",
      "parents": [
        "5729cff611be1dbb75c34695ab195ab878d44420"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 15 14:06:26 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Nov 15 14:06:26 2018 -0800"
      },
      "message": "Remove overly restrictive check for memory.\n\nRemove unit test that is not needed any more.\n\nSlightly reorganize the code around the changed check.\n\nBug: 77958880\n\nTest: Ran backtrace tests with new linker options.\nTest: Ran libunwindstack unit tests.\nChange-Id: Ie95707323fb51616a093cafb83e0343fa24e7e61\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": "4568f4bc0f116f097a13b1d931de93cf525ae204",
      "tree": "2832d853a8b2dfa6f66f1c5d04d22df742b22d4d",
      "parents": [
        "2a8460721ca219ea2d9bc00e0412297afd12df47"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 23 17:42:41 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 29 18:08:09 2018 -0700"
      },
      "message": "Verify that the elf matches the expected arch.\n\nTo avoid a case where a malicious app might try and trick the system to\ncreate an elf and register object that mismatches, always verify that they\nare the same arch.\n\nTest: Ran unit tests.\nChange-Id: I66978e9e02f8e4f396856912e7019528ead4838e\n"
    },
    {
      "commit": "551efd11f7d31399a4a2c22cb19b2523be9c4d18",
      "tree": "b0c7ba72d4c9ab58c47a85864974e6b3ae773220",
      "parents": [
        "afd6e7712fd5432605e7876fef208ad379f1ce56",
        "9c36a99ebc8a9a82af86d9e86453b09f9e64b4e8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 24 00:52:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 00:52:15 2018 +0000"
      },
      "message": "Merge \"Fix off by one error.\""
    },
    {
      "commit": "e8c4ecf49e87b082610055e279f889d2d1311b71",
      "tree": "da1a1c9f1158dee9c5b646894f2c2300f7fba899",
      "parents": [
        "b59a38d34328eb8f297b965bec84233bd7fa6a25"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 23 12:04:26 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 23 12:13:54 2018 -0700"
      },
      "message": "Always init gnu_debugdata interface if it exists.\n\nEvery real call always sets the value to true to init the gnu_debugdata\ninterface, so remove this parameter.\n\nTest: Builds, unit tests pass.\nChange-Id: I07fb3adbbd5b65b51c0dc7608561e820a5095051\n"
    },
    {
      "commit": "9c36a99ebc8a9a82af86d9e86453b09f9e64b4e8",
      "tree": "9ffba680d73b93d75d7365091311d78d52097c3a",
      "parents": [
        "33eb65278338804b9847618e6295f8f29bd4b236"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Oct 23 14:09:48 2018 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Oct 23 18:10:41 2018 +0100"
      },
      "message": "Fix off by one error.\n\nChange-Id: I18a2d177f3212626b7091150f42dfe151e47570e\n"
    },
    {
      "commit": "56d0e07d703c7727b51b0354f555d4b825b747ac",
      "tree": "2c6409eab9862d492f762757a47910beacfe4caa",
      "parents": [
        "6853a187e37b541fb536154cc6a6057dae1e916a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 17 10:57:53 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 17 14:23:10 2018 -0700"
      },
      "message": "Fix which maps to search for globals.\n\nIf multiple threads are unwinding at the same time, new maps that contain\nthe global variables for dex files and jit information are created. This\nleads to threads creating more new maps that then get searched, then\nmore maps, then more searching until virtual address space exhaustion.\n\nFix this so that we only search maps that have a corresponding rw map that\ncould contain the global memory.\n\nSmall refactor to combine the code to search for global variables into\none class that both classes inherit from.\n\nModify unit tests for the new pattern checking.\n\nBug: 117761427\n\nTest: Ran unit tests for libunwindstack/libbacktrace/simpleperf.\nTest: Ran art 004-ThreadStress that used to fail.\nChange-Id: I837ca6b9d0383100079de090bc7d019598e0cdfe\n"
    },
    {
      "commit": "6853a187e37b541fb536154cc6a6057dae1e916a",
      "tree": "795c01a0ea45be5de0966693dffa0b8d90dc8d23",
      "parents": [
        "9074871af28be16eeef2150413f3a324e4b45ff1",
        "a2f38f1bdee60e3b8935b1ba781a8e659eb7e7a6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sat Oct 13 17:47:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 13 17:47:18 2018 +0000"
      },
      "message": "Merge \"Fix up the definition of Elf::GetInfo.\""
    },
    {
      "commit": "9d0ad238cab5ebb5f780bcdb7a1d9b712e4d9c91",
      "tree": "3d46d25d62d65fe8fd5a4da5648875b93fab1565",
      "parents": [
        "b3bc8427505c55a4134eac438f118a9b1acb4e2f"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 12 16:33:42 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 12 16:36:35 2018 -0700"
      },
      "message": "Fix problem adding too many frames.\n\nWhen adding a frame with a dex pc, two frames will be added total. However,\nif there is only enough room for a single frame, two get added any way.\n\nOnly add a single frame in this case, and add a unit test for this case.\n\nTest: Passes unit tests.\nChange-Id: If320584b126967a042c623d8fdf3f51dbc1c2251\n"
    },
    {
      "commit": "a2f38f1bdee60e3b8935b1ba781a8e659eb7e7a6",
      "tree": "7a09bd9c51e4d7a077f74db232335bc6ec96f46c",
      "parents": [
        "c53a0e9158bbfb2a4ffa1a15f15bb7450d3fb8d9"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Oct 09 18:49:11 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Oct 12 11:29:06 2018 -0700"
      },
      "message": "Fix up the definition of Elf::GetInfo.\n\nThe function should have returned a bool, so now it does.\nAlso use a different lighter weight function for validating the elf\nin one place that didn\u0027t need to keep the max size value.\n\nTest: Unit tests pass.\nChange-Id: Ibde674e608091ba04abf22fad2fdc4dbdb2c6e73\n"
    },
    {
      "commit": "1f34c0e7a43c199ea3ea430bee1b6b74b8e134df",
      "tree": "f946a4ed30b342d33153388b2b69a26ac7daaf98",
      "parents": [
        "380d3192ccca0f7a4726a19345b56c0f342d4339"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 08 17:39:39 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 08 19:47:33 2018 -0700"
      },
      "message": "Fix handling of globals for new linker.\n\nThe new linker base map is read-only, but the global handling code\nfor jit and dex information assumed the base map was a read-execute\none. Relax that requirement to search read-only maps.\n\nAdjust the unit tests for this case.\n\nBug: 117293117\nTest: Passes unit tests.\nTest: Passes art cfi tests with and without llvm linker.\nChange-Id: I31a765d51847d0b8d778ace9cbaa29f42073f4d9\n"
    },
    {
      "commit": "9d5712c1238164d5394b188617719c91a8f2efaa",
      "tree": "56d96d87d30179616f0787afb344d9bdfd24010e",
      "parents": [
        "15a5c9c44fee0246b6b762457e4132b700cdc7f1"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Oct 01 21:01:09 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Oct 03 20:48:45 2018 -0700"
      },
      "message": "Implement support for linker rosegment option.\n\nThe rosegment linker option results in two maps containing the elf data\nexisting. One is an execute map where the code lives, and the other is the\nread-only segment which contains the elf header information. If the file\nbacking a shared library in memory is not readable, then the new code\nwill attempt to find the read-only map that has the same name as the\ncurrent execute segment, and that is at offest zero in the file.\n\nAdd new unit tests for this functionality.\n\nAdd the missing MapInfoCreateMemoryTest.cpp to the list of tests.\n\nBug: 109657296\n\nTest: Pass new unit tests.\nTest: All unit libbacktrace/libunwindstack tests pass with rosegment enabled.\nChange-Id: If8f69e4a067d77b3f2a7c31e2e5cd989a0702a8c\n"
    },
    {
      "commit": "3f9582f432f114526635effc0771f9d751e6354f",
      "tree": "49863f3ca428c9f859fee17030d059fde96bc462",
      "parents": [
        "16fef65f9ed6e2f895a299ed347be27a0df58c56"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 19 14:12:59 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 19 14:12:59 2018 -0700"
      },
      "message": "Fix implicit fall through switch cases.\n\nBug: 116020901\n\nTest: Builds with -Werror\u003dimplicit-fallthrough.\nChange-Id: I401f37585dae6cbf8995389a8a189abc2e102987\n"
    },
    {
      "commit": "502f4864d6c92fce4cb0e4f7f2b12d7124da902b",
      "tree": "b34cb377a8a6543fb0baf68e566b120209b3aaf9",
      "parents": [
        "c2501fda600ea2067099c1de042e3db7acde74ee"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 13 11:08:41 2018 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 17 16:50:11 2018 +0000"
      },
      "message": "Suppress implicit-fallthrough warnings.\n\nAdd FALLTHROUGH_INTENDED for clang compiler.\n\nBug: 112564944\nTest: build with global -Wimplicit-fallthrough.\nChange-Id: I40f8bbf94e207c9dd90921e9b762ba51abab5777\n"
    },
    {
      "commit": "ec004eb1b376d2d9008829a25f47ac3fcfd728ab",
      "tree": "e68ce6d92d3b9325c476b80a12298090ee02f601",
      "parents": [
        "f41897a66e4e99cdda38c8150cd1cec543e2c393",
        "932247e900479e85528b6751e0fd2c02ae0c1dda"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Aug 08 21:37:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 21:37:46 2018 +0000"
      },
      "message": "Merge \"Allow to get raw register data on all platforms.\""
    },
    {
      "commit": "c2277fc2167fe1121144227f03efc53074fff992",
      "tree": "1c29fc0fd320b20e58929f55052a489ffd307de9",
      "parents": [
        "1e0e1b44bd19c522402a281a5a5e14f449cff3e2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 07 18:12:23 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 11:04:15 2018 -0700"
      },
      "message": "Move to using ClassAccessor\n\nIn preparation for removal of ClassDataItemAccessor.\n\nBug: 79758018\nTest: make\nTest: test/run-test --host 137\nTest: out/host/linux-x86/nativetest/libunwindstack_test/libunwindstack_test\n\nChange-Id: I61a20fe7200a0d669b84573d3853b55877922602\n"
    },
    {
      "commit": "932247e900479e85528b6751e0fd2c02ae0c1dda",
      "tree": "4d562d4002c2ecf04d7b0de78cd6b57e021d2ae4",
      "parents": [
        "6b0ecdab159e078d37fedcaad300db411f49eadc"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Aug 07 11:42:10 2018 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Wed Aug 08 11:19:41 2018 +0100"
      },
      "message": "Allow to get raw register data on all platforms.\n\nNo new test failures introduced.\n\natest libunwindstack_test on aosp_walleye-userdebug:\n\nWithout patch:\nTotal: 800, Passed: 781, Failed: 19\nWith patch:\nTotal: 800, Passed: 781, Failed: 19\n\nChange-Id: I8853c3e1594799761b481464b75e2904b38c4830\n"
    },
    {
      "commit": "5acf069a7a9be4318317b6735a55c18782fdee80",
      "tree": "b176803fb520678280300a7657abc712f9b7762b",
      "parents": [
        "d560f39fd735f992448cfe1b1a528edd98a62e99"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Aug 01 13:10:46 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Aug 03 22:02:05 2018 +0000"
      },
      "message": "Be permissive about badly formed elf files.\n\nHere is the allowable issues with an elf file that will not result in an error:\n- The program headers/section headers offset points to unreadable memory.\n- Allow missing program header and/or section headers.\n- Allow a symbol table section header to point to invalid symbol table values.\n\nThere is no real reason to require the elf file be perfect. Everything in\nthe code has sane defaults, so any missing information won\u0027t cause any\nproblems.\n\nThis gets rid of the warning that occurs any time an elf is loaded\nfrom memory. In memory elf files never contain all of the section headers,\nand do not contain the symbol table data.\n\nUpdate tests to test these new cases.\n\nTest: Builds and unit tests all pass.\nChange-Id: Iaefe2cd6b6c965a01ed425a112d6afae339f3b78\n"
    },
    {
      "commit": "2786608743727506c8ab614905e4032e66db1427",
      "tree": "1f11e223b642620c78fe09170eb0b57c2b56ca39",
      "parents": [
        "d52b17ff0a559334dd6791e5a9533e4cfdac9446"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 02 15:21:37 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Aug 02 18:01:02 2018 -0700"
      },
      "message": "Fix incorrect left shifts.\n\nBug: 112142060\n\nTest: New unit tests pass.\nChange-Id: I0c47b22582f0bf75ab503364a337c7de4de3ec43\n"
    },
    {
      "commit": "02d0f7962d17fc05efdebb947e908817d304673d",
      "tree": "e484208856858cfe8d9d256987ba2ab40af31d44",
      "parents": [
        "fcc16c53e10d90a7f92d5953b44fdb4c00d909f2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Mar 24 00:29:14 2018 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 20 10:48:59 2018 -0700"
      },
      "message": "Create lookup table of DEX symbols.\n\nCreate fast lookup table instead of iterating every single time.\nThis will create the cache as methods are searched for.\n\nTest: 137-cfi\nChange-Id: I4be190bb1a637fef5d385b993be6a7e2203a6814\n"
    },
    {
      "commit": "5afddb06370dc8b3d04a31f6f3ae04a5fa379cde",
      "tree": "274864d812331b87c63c44c344db70967d9b4033",
      "parents": [
        "32960e54b44042eb74c845fc9ae50aeb8b74841c"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 29 16:30:55 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jul 12 12:45:31 2018 -0700"
      },
      "message": "Remove Memory::ReadField.\n\nIn almost all cases, it is faster to read the entire structure rather\nthan do multiple reads using ReadField. The only case where it would be\nslower is if doing a remote unwind and ptrace is the only way to read. In\nall other cases, it\u0027s a single system call. In the ptrace call, it will be\nmultiple calls. Given that it is unusual to be forced to use ptrace,\nit\u0027s better to avoid it.\n\nIt also reduces the code complexity to do a single read, and avoids\nissues where the code forgets to read the field it needs.\n\nTest: Unit tests pass on host and target.\nChange-Id: I7b3875b2c85d0d88115b1776e1be28521dc0b932\n"
    },
    {
      "commit": "38488907a09c88d2c3954a2dc69e5a4785d6a5af",
      "tree": "160d2c2cca2c491e1b905793e6f0d6b90d78beef",
      "parents": [
        "1db3789252342c5bfd34d889792866c3b4357b0c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 11:13:16 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 11 13:55:07 2018 -0700"
      },
      "message": "Move libbacktrace off cutils.\n\nThere\u0027s still \u003ccutils/atomic.h\u003e in a test, but I don\u0027t understand why\nthat isn\u0027t just std::atomic.\n\nAlso add a shared tgkill wrapper to libbase.\n\nBug: N/A\nTest: ran tests\nChange-Id: Idd4baa1e1670a84b3a8f35803cc5ffe5aae008a6\n"
    },
    {
      "commit": "92acaac8c713c3e1828948064ebca055dc00a723",
      "tree": "d50cf188a4df626b8e9718469575e7ff17671dd7",
      "parents": [
        "fc1cf90741e59d5615a7dcea1813f38bfa3a2eec"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jun 21 10:44:02 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 27 14:52:21 2018 -0700"
      },
      "message": "Refactor the DwarfSection classes.\n\nModify the code for the no header sections because it turns out that\nit is not okay to assume that the fdes are non-overlapping. It\u0027s necessary\nto read the fdes in order and match as you go.\n\nModify the code so that it only reads until it finds the given pc rather than\nreading all of the cie/fde entries at once.\n\nRewrote the tests to verify the new behavior.\n\nBug: 68998033\nBug: 110235461\n\nTest: Ran libbacktrace/libunwindstack unit tests.\nTest: Unwind the mediaserver process on a walleye and verify it\nTest: unwinds properly.\n\nChange-Id: I7bb59d1db72c13fa34caa9735ec34c1a60e20ed2\n"
    },
    {
      "commit": "f882a38864199f645efb973f881e06d6a0563ce3",
      "tree": "e1aeb4a6c5cb945630d24f40d2f239b04c8c258e",
      "parents": [
        "8ddd10554547f1b38631b96a12fb3c1cae6bfd08"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 22 16:48:02 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jun 22 16:48:02 2018 -0700"
      },
      "message": "Fix ARM program header values used for exidx.\n\nBefore, I was using p_vaddr to get the offset into the elf file where\nthe exidx frame starts. I changed that to use p_offset since this already\nhas the load bias offset in it and some elf files do not set p_vaddr\nproperly.\n\nAlso, use p_filesz instead of p_memsz, since again, some elf files do\nnot set p_memsz to the same as p_filesz.\n\nBug: 110704153\n\nTest: All libbacktrace/libunwindstack unit tests pass.\nTest: Randomly unwind process on a walleye.\nTest: Verified that this properly dumps and unwinds the shared\nTest: library that sets p_vaddr and p_memsz differently.\nChange-Id: Ic7b1e5d07439f4636fa02cd884a8727a5737372b\n"
    },
    {
      "commit": "4cc36d2b4355401b91c5fd7d153f1c421bf1c6cf",
      "tree": "ff518db3f138fdc121412ca066bed11b4683eee1",
      "parents": [
        "3ee8926f5dc70f5740ec235f2a0cf3abd29ac543"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 06 14:47:31 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Jun 11 18:53:55 2018 -0700"
      },
      "message": "Fix handling of load bias values.\n\nIt turns out that for the dwarf information, if a FDE indicates it\u0027s pc\nrelative, then pc has to be incremented by the load bias. If not, then\nit should not be incremented.\n\nPreviously, the code always subtracted load bias values from pcs, and assumed\nthat all fdes were incremented by load bias values. The new code actually\nreads the fdes and adjusted the pcs in the fde and in the eh frame hdr so\nthat load bias values are already handled properly.\n\nIn addition, add dumping of arm exidx values in unwind_reg_info. This allowed\nverifying that the debug frame in those elf files was being handled properly.\n\nAdded a new unit test that only has a debug frame that has a non-zero load\nbias and has fde entries that do not have pc relative encoding.\n\nFix a couple of other small bugs.\n\nBug: 109824792\n\nTest: All libbacktrace/libunwindstack unit tests pass.\nTest: Ran ART 137-cfi test and 004-ThreadStress.\nTest: Verify that displaying the fde start and end pc actually match the\nTest: real data for fde that have pc relative set, and that don\u0027t.\nTest: Verified that the unwind information for arm exidx matches the\nTest: debug frame data.\n\nChange-Id: I707555286b5cb05df9f25489e8c5ede753cfe0fb\n"
    },
    {
      "commit": "f6d7594d7f08df16d7df60b86205ce530dc6137c",
      "tree": "c0ebb2c9c65dce87d87033ff92f555cfa19a946e",
      "parents": [
        "d580c441ab45a6b7278da003e19af64e9ea2cc71"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:48:41 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 06 10:48:41 2018 -0700"
      },
      "message": "Try to fix LocalUnwinderTest.unwind_after_dlopen in APCT.\n\nFailure:\n\n  system/core/libunwindstack/tests/LocalUnwinderTest.cpp:181: Failure\n  Value of: handle !\u003d nullptr\n  Actual: false\n  Expected: true\n\nBug: N/A\nTest: N/A\nChange-Id: I89b3228d51961f7bf952dd01f12f4ee61a97fe91\n"
    },
    {
      "commit": "6c9bb058c5801bd2fd52ceabd0aecd96776f0e71",
      "tree": "66cd9fee7cb214a3d01a9a82c29ee918c703bd14",
      "parents": [
        "f90137da608c09361dc6e5bf1f60bfcff9357193",
        "a0e75045e6817a51e4e6b05880d871525a4d52fe"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 25 05:58:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 25 05:58:01 2018 +0000"
      },
      "message": "Merge \"Build adbd for recovery\""
    },
    {
      "commit": "a0e75045e6817a51e4e6b05880d871525a4d52fe",
      "tree": "5d65ece1bd5bcba61ff8617baa096c1e3a70b5ad",
      "parents": [
        "98c1b1ccf67113957f1e4d8678cf8b5a1fe747e1"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu May 24 14:11:00 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu May 24 14:11:11 2018 +0900"
      },
      "message": "Build adbd for recovery\n\nadbd (and its dependencies) are marked as recovery_available:true so\nthat recovery version of the binary is built separately from the one for\nsystem partition. This allows us to stop copying the system version to\nthe recovery partition and also opens up the way to enable shared\nlibraries in the recovery partition. Then we can also build adbd as a\ndynamic executable.\n\nBug: 79146551\nTest: m -j adbd.recovery\nChange-Id: Ib95614c7435f9d0afc02a0c7d5ae1a94e439e32a\n"
    },
    {
      "commit": "ca9a54b2c0381cc59598e8e560be9ad10b7c2e38",
      "tree": "4efa54155c9ce3b162a913bf7a9941f4b0506ff4",
      "parents": [
        "2ed14f3923a96f66ee0b0270cb0b373e690505e5"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Apr 05 11:15:00 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed May 23 20:02:30 2018 -0700"
      },
      "message": "Add a specialized LocalUnwinder object.\n\nThis object is for doing many local unwinds across different threads\nat any point during a program\u0027s execution.\n\nAlso add LocalUpdatableMaps that will re-read the maps data under certain\ncircumstances.\n\nThis first version does not support jit or dex pc data.\n\nBug: 74361929\n\nTest: Ran unit tests.\nChange-Id: I790662366d3fed677f31b3288182950c494de9ad\n"
    },
    {
      "commit": "2ed14f3923a96f66ee0b0270cb0b373e690505e5",
      "tree": "343f2d2f75f808b2ca6c184d5e0e1238f5ca1e02",
      "parents": [
        "85bd9ca978772341c4e481317f0f768fa2b2aade",
        "8ccbe4258e20b3eba808f672b0a07a178dcc01e5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 23 19:37:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 23 19:37:01 2018 +0000"
      },
      "message": "Merge \"Libunwindstack: Add -O0 to tools defaults on host\""
    }
  ],
  "next": "5e516cad9374161bc38369df8aa469c068cc6975"
}
