)]}'
{
  "log": [
    {
      "commit": "530fa005e2944d3b12712f80d974f0e753f568ef",
      "tree": "0a98404cd017ee5dc1c717039d5caad02fd38f18",
      "parents": [
        "4d26534f6a65d7af89cc32da8fbc32beed693201"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 11:44:49 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 11:44:49 2012 -0700"
      },
      "message": "Give WalkStack\u0027s callback a way to terminate early.\n\nAlso combine WalkStack and WalkStackUntilUpcall.\n\nChange-Id: Ida25665de72e5fd8e17946886a387b27cf841457\n"
    },
    {
      "commit": "a3ae2b7c6598e9b1cf08e42ae4a8de38237b181b",
      "tree": "ee24e45362429cbee3ff589ad45f30ed873778d5",
      "parents": [
        "345689696f8a25db7d3a4b43b6a8afe8f4e22ba9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 15:10:51 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 15:10:51 2012 -0800"
      },
      "message": "Implement VirtualMachine.ClassPaths correctly.\n\nChange-Id: I71d9b675b0b167d9e5628e4d41b0747f77f1e845\n"
    },
    {
      "commit": "98e43f6f6ebed9c5901de53f2d6b41a32cd6ad95",
      "tree": "83f75b25b13e415f4ef2cf03d818df928913f735",
      "parents": [
        "3ce4b266a8e620ae4205922d828acc5976a99006"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 12:42:35 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 24 12:42:35 2012 -0800"
      },
      "message": "Fix a bug in ReferenceType.SignatureWithGeneric.\n\nImplicit conversions to bool strike again. Damn you, milkman Stroustrup!\nWhile I\u0027m here, remove the unnecessary duplication between Signature and\nSignatureWithGeneric.\n\nChange-Id: Ia1b327e9d00bea43b67898c4941bed17db043515\n"
    },
    {
      "commit": "0cf7433fd2a93b7f83e8b2ac91d0d1b4f0e7d0c9",
      "tree": "37246680f99ba51ec7d8f1a13c7e80cfe9b388c0",
      "parents": [
        "8be2d40d42223b515de12629216151a558895969"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 23:14:00 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 23:14:00 2012 -0800"
      },
      "message": "Fix the remaining GetValues/SetValues tests.\n\nAdd some missing checks and weaken some others. I\u0027d like to strengthen these up at some\npoint, but for now let\u0027s just pass the tests. The JDWP so-called specification is typically\nuseless about what should/shouldn\u0027t be allowed.\n\nChange-Id: Ia7390e0f18c4ac4a1697feac3d418767bdf7ebef\n"
    },
    {
      "commit": "229feb7a09317919ee51c06d1c3e715cea25da75",
      "tree": "2e09c9af03d0f505391f1803404c887873f1654f",
      "parents": [
        "753d7ff905bd1d397ba6b8cb4336096535021e40"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 13:33:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 23 13:33:29 2012 -0800"
      },
      "message": "Consistently use hex for dex PC values in the debugger.\n\ndexdump uses hex, so there\u0027s less need for translation if the runtime does too.\n\nChange-Id: Ie44790d0b277a12d45ec6fdf11fcc20e75459b5a\n"
    },
    {
      "commit": "972a47bf0c180dee7e4c697b74dd31daaf58e008",
      "tree": "0ff325949e3aff2a3eefef05dbaf74595cf079b1",
      "parents": [
        "a656a0f6fbcf2ba3f15cae54a773b9c636dd32c1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 18:16:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 22 12:17:04 2012 -0800"
      },
      "message": "Rename JdwpLocation.idx to the more intention-revealing dex_pc.\n\nChange-Id: Ie111b1e715b701da528b0e6de87560b1eea793d1\n"
    },
    {
      "commit": "45651fde99f52546e71241bb0e8a10d16a9f216a",
      "tree": "c796792c4b07027cfef0b519c4acafa307136257",
      "parents": [
        "3e2e1a2380e7b2ce402640ea4f6a177c06bd19a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 15:48:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 21 15:48:20 2012 -0800"
      },
      "message": "Fix various debugger method invocation bugs.\n\n(Also fix DexFile to admit that string lengths are always non-negative.)\n\nChange-Id: I2d01ef2411b5c7e594527790daf3e0aaa3a1b67f\n"
    },
    {
      "commit": "3f4d58f4a39f60057ebf8ea92340ddb78317ae51",
      "tree": "39e0f6076b1eb5a0280b162f36bf5370b9f081dc",
      "parents": [
        "1a121b99fa8c5bf72cf58dcba4ecd5fd6dad417f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 18 20:05:37 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Feb 18 20:05:37 2012 -0800"
      },
      "message": "More debugger robustness.\n\nThis fixes about half the remaining test failures, including almost all of the\nnative crashes.\n\nChange-Id: I9c3d994bfafaecca17597e442477c973e57f5979\n"
    },
    {
      "commit": "436e372e1c2b8e0bde47408e7407b4c3590f5071",
      "tree": "400ab4354ac9b1c67f2e94802f4d936e8739c163",
      "parents": [
        "2aa2e39548e194c5514d6534149ca1078021eab1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 20:01:47 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 20:01:47 2012 -0800"
      },
      "message": "Improve JDWP error handling.\n\nIn particular, we can\u0027t use NULL to mean \"invalid\"; some JDWP calls\nlegitimately need to handle NULL.\n\nChange-Id: Iec4fac5521994bdb1f59677bd5af153684d4e266\n"
    },
    {
      "commit": "2aa2e39548e194c5514d6534149ca1078021eab1",
      "tree": "e5fc350cd4d6d048c9b4460e12d494dfdecc27b0",
      "parents": [
        "87dc6b9cbd4102152dab3d7157a3ad0816415b60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 17:15:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 17:20:43 2012 -0800"
      },
      "message": "Fix breakpoints.\n\nMy manual testing in jdb worked because I only ever set breakpoints at\noffset 0, which is the same whether you\u0027re using bytecode or 16bitcode.\n\nChange-Id: I7aae1961d08fc008af275ff0d1ae1f1e4619fa18\n"
    },
    {
      "commit": "2435a5751431152aaeaa2faaa86b2a30d3eecfe3",
      "tree": "ec5c4a2140364e6342aad6c02606dd8885d0d8be",
      "parents": [
        "dd6aa87f0484c6097df0657f242eeef9ac9ff9e8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 16:07:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 17 16:07:41 2012 -0800"
      },
      "message": "Support for single-stepping by line.\n\nPlus various other test fixes.\n\nChange-Id: I2ef923e56a16a14380eda150685b5e3db944616e\n"
    },
    {
      "commit": "c308a5d8c1993ff51be355531548e91409bdbd82",
      "tree": "0d0e88307b368d310be077363702c7b28b0a20f4",
      "parents": [
        "b6744c5a8a619501d89c0a137b61ca5b4ec93411"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:12:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 16 17:39:56 2012 -0800"
      },
      "message": "Fix a bug in Dbg::GetClassDescriptor.\n\nThe callers were incorrectly assuming we always returned a descriptor, which\nisn\u0027t true when handed bad input.\n\nChange-Id: I5509d18d8c234d97fa5ec2e0a01d4cdb44acfc55\n"
    },
    {
      "commit": "8696433d1b3d8ba15288483b777edd888de69135",
      "tree": "13ef61a98160430efae310c2e0fb322b1489ce68",
      "parents": [
        "83426160568b62b22a1f1559cace78b5152c7749"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 15 19:37:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 15 19:37:42 2012 -0800"
      },
      "message": "More JDWP functionality: breakpoints, single-stepping.\n\nBy-line still needs to be implemented. I\u0027ve also implemented\nVirtualMachine.Dispose so that it disconnects from the caller, as it\u0027s\nsupposed to. This was the cause of a lot of test hangs in otherwise\nsuccessful tests.\n\nI\u0027ve implemented ClassLoaderReference.VisibleClasses, though we don\u0027t have\nenough information to only return the classes for which the given ClassLoader\nwas an initiating class loader. We pass the tests with this, but mainly because\nthe tests aren\u0027t very thorough. Sadly, VirtualMachine.CapabilitiesNew doesn\u0027t\nlet us say we don\u0027t support this. (Though we could still just return\nERR_NOT_IMPLEMENTED...)\n\nChange-Id: I8d02c2b568a77a4c1725bc737a8ee844f4591e81\n"
    },
    {
      "commit": "91bf6cd47174f5c17265320f7a350722720390a5",
      "tree": "f4823c09793162e00b2fdd43990e12f2837d7562",
      "parents": [
        "f05d0dd011d3dbcf78bf35d0771f67371f5f6b58"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "message": "More debugger support.\n\nThis wires up method-entry events and fixes a bug in exception events.\n\nChange-Id: Ia7c46786a8073434fbb4546615072622f301ef84\n"
    },
    {
      "commit": "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e",
      "tree": "65edf838d32560b88d2221743f2232e235888e4f",
      "parents": [
        "edad6a280cfc63cba9646a83724957c71f1c31ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 10:44:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 11:24:47 2012 -0800"
      },
      "message": "Only JDWP exposes ACC_SUPER.\n\nAlso track the use of suppressed exceptions with ClassNotFoundException.\n\nChange-Id: I5349d2e397f94c162cf44435cd36cab71f233480\n"
    },
    {
      "commit": "1fe7afb88498d48d1f808ee31e986324f2a1c842",
      "tree": "08352a9caec6a5d26d5d47dfb7bd4543a2f22c39",
      "parents": [
        "cd1410aec0aff8b5cece062303311c20c23158fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 17:23:03 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 18:32:19 2012 -0800"
      },
      "message": "Fix more JDWP bugs.\n\nChange-Id: I475d14e196a7463e70f7cce6a8b8d77f867e9e46\n"
    },
    {
      "commit": "3d1ca6de2ddf3d9e39755d629c896bfecd9640fd",
      "tree": "e44da249879ec6718d60f00b2333932f714711a3",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 15:43:19 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 15:43:19 2012 -0800"
      },
      "message": "Fix a bunch of JDWP bugs.\n\nMost of these were broken in dalvikvm too.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d20856\nChange-Id: I88bc89e00a19edc21953cd4f42833f35bb5456a8\n"
    },
    {
      "commit": "807444fe87b61e9e306cab09bb51ea7fa02ce1fc",
      "tree": "5779950ea87e1aac3ffdae9d0b279f1e8c38af38",
      "parents": [
        "7646444a859bc9ac03431915dfdc82dad1790f4d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 19:59:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 19:59:42 2012 -0800"
      },
      "message": "Switch to more traditional logging on Android.\n\nThe Linux logging stays google3-like.\n\nChange-Id: I936f0529993cfcfb34c51382e699ec9759151d26\n"
    },
    {
      "commit": "c3b3e75e2ec66b16214fcd56dd08c0d9f6b1a591",
      "tree": "acce48bc3d3b77d8eec22d837612de3533ba49f3",
      "parents": [
        "699f9f42058ce438930ee0a5a9ae6451e3d8a2fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 27 13:48:50 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 27 13:48:50 2012 -0800"
      },
      "message": "Fix a jdwp assert.\n\n(From https://android-git.corp.google.com/g/161010.)\n\nChange-Id: I8d9cd2cd526c4ced5db412ce2a1fa61f921c48de\n"
    },
    {
      "commit": "ba8eee10607a524f43b55a6f33c13924fb16d435",
      "tree": "45f3c3728bcaee9ff04baeaf1706693e677757bf",
      "parents": [
        "844f9a072454eb9dca1022299b6bf99ef4294008"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 24 20:25:24 2012 -0800"
      },
      "message": "Remove more lint.\n\nChange-Id: I48714db4169d9ea0536342809361210910ee2091\n"
    },
    {
      "commit": "abd04b94b3404ba0610094314ea50bfc0ed2a0ef",
      "tree": "9f9e00c4fa258310db6d2142d5b9a4bd71d93608",
      "parents": [
        "8d5ffb03e4da64f2d650d94fae94c192e758b409"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 22:46:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 18 22:46:41 2012 -0800"
      },
      "message": "Yet more Mac build fixes.\n\nChange-Id: Ic1a009f99a7e688931d90a8c3293d9bbb5dcd7f5\n"
    },
    {
      "commit": "6d8dd47f2f65c4476b31672b6f2c7bbf9020fe3a",
      "tree": "b572366b4ec42dba8453c5c91b4aa0b16c0ac871",
      "parents": [
        "73a15f4ca25453bb86d5e93c8d005e0eb3868e18"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 18:27:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 17 18:27:41 2012 -0800"
      },
      "message": "Fix a bunch of uses of \u0027short\u0027.\n\n(In particular, port numbers should be unsigned short.)\n\nChange-Id: I944eb0f8e97390f1af8094b07ee7f2a00045bd35\n"
    },
    {
      "commit": "0cc1bbd9247151289db88ccea89c842953323a6a",
      "tree": "8262796fbc4718980b6461da15c564955daa9be5",
      "parents": [
        "0755ec5ea1dce0b549fc1adefeb52d89f119ebec"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 12 12:27:08 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 12 12:27:08 2012 -0800"
      },
      "message": "Hide some JDWP logging behind -verbose:jdwp.\n\nWe see quite a lot of this running CTS, and it\u0027s no use to anyone who isn\u0027t\nworking on our JDWP implementation.\n\nChange-Id: I847f4661e20f5f0e12ea31d379ee8bcea0bd9fba\n"
    },
    {
      "commit": "42d305e68c9b6545fa320e318fc1edb178cc51b9",
      "tree": "53102d0c3bf9474bc2bf7cf488a10fbceedd1cc1",
      "parents": [
        "ab3530dce2119432ce076e2499743cc7ee358e67"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 09 18:05:41 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jan 09 18:05:41 2012 -0800"
      },
      "message": "Fix all the operator\u003c\u003cs so there are no bad examples lying around.\n\n(Strictly, there\u0027s still one, but that\u0027s being fixed separately as part\nof the GCC 4.6 upgrade.)\n\nChange-Id: I68fa24802fc59b3031e70587a7f741c5b3637c6c\n"
    },
    {
      "commit": "c3b77c7c2971124cbf3b2d9da64e7a8a9a649f2e",
      "tree": "b8f2b70fb281d2d8b617491755bcdb7f798af837",
      "parents": [
        "90040194a1b5c441dde5c8a8b6d637c23972e0f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 15 20:56:48 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 16 14:17:50 2011 -0800"
      },
      "message": "Avoid copying and strlen(3) in the FindClass path.\n\nChange-Id: I789f3c883596d1852a2c1954ce7a207e6f937117\n"
    },
    {
      "commit": "4dd9b4d95eec9db5338fb9bf132f9bb8facf6cf4",
      "tree": "f9dc6f6e6a55acea3a08f1f568ae6900c1dd7dd1",
      "parents": [
        "20a409c99a649a01cb7c65bd1089988445d8cdfd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 12 18:29:24 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 13 08:23:08 2011 -0800"
      },
      "message": "Clean up verbose logging.\n\nChange-Id: I6b01980e7145c4f8d25a5b50f620903f61a1b427\n"
    },
    {
      "commit": "7b3cdfcca472b779cf8745fb8460935e56229f11",
      "tree": "e74e88286c9f121ed1312faece45981ba4e0b14c",
      "parents": [
        "6f1dfe415019de95f0305de66b3afb40005fe382"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 08 21:28:17 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 08 21:45:49 2011 -0800"
      },
      "message": "More JDWP robustness.\n\nWe pass a lot more JDWP tests with this (fewer total failures than dalvik,\nbecause although dalvik implements more requests, it assumes that the debuggers\nonly send it valid input).\n\nI\u0027ve also added some of the missing constants (there are tests of modifier 12,\nSourceNameMatch, which was added in Java 6).\n\nChange-Id: I502e87b50fb305c5c8b061421339c8ceab104640\n"
    },
    {
      "commit": "3d30d9b09c16542d41554aad9f46ec9109ba5cb5",
      "tree": "fecce7ca0ea5e1fe0f5a03b917ab036a4a33b3b0",
      "parents": [
        "486013193c94b4321414c28ce9251911e14a0599"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 17:35:48 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 17:46:46 2011 -0800"
      },
      "message": "Fix detaching a debugger while threads are suspended.\n\nThe interesting part of this change is in \"thread_list.cc\".\n\nI\u0027ve done a TODO in TagFromClass, but haven\u0027t seen it make any practical\ndifference in a debugger. I also tightened up the types in GetThreadStatus\nwhile investigating the fact that we report some threads as \"RUNNING, SUSPENDED\",\nwhich makes no sense until you realize that TS_RUNNING corresponds to both\nour kRunnable thread state and our kNative thread state, the latter of which\nmay actually be a suspended thread.\n\nI\u0027ve also made us fail faster in the \"address in use\" jdwp failure case,\nand tidied up a bunch of the capitalization in logging.\n\nChange-Id: I0fe705791d07db31c4615addce44da4fdfbfd0d1\n"
    },
    {
      "commit": "a3c24aaf30fcce6c4393c923beeaad385f1257db",
      "tree": "23f8b0a889eb6400ca789f900032f858c99fe8e7",
      "parents": [
        "21a5bf2dc8c9cb3fbe5a30a88d1149c328e3aaca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 15:34:09 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 15:34:09 2011 -0800"
      },
      "message": "Fill out the list of JDWP commands.\n\nThis also changes to reporting ERR_NOT_IMPLEMENTED rather than aborting for\na command we don\u0027t have a handler for. (As opposed to a command we have a\nhandler for, but whose handler just calls UNIMPLEMENTED(FATAL) --- there\u0027s\nno change to that. This just means that for stuff like jdb\u0027s \"threadlocks\"\ncommand that dalvik never supported, using it now causes jdb to say\n\"Command \u0027threadlocks\u0027 is not supported on the target VM\" instead of causing\nthe VM to abort and jdb to be thereby disconnected.)\n\nChange-Id: I1b7952d4ca6a540afb9fde6ae54de11b36345d4e\n"
    },
    {
      "commit": "4740cdff25875c530649a670b15e8ac52bfd7252",
      "tree": "0ca835b636fe2b6854ba65bee2eee3c4ea983048",
      "parents": [
        "0ad5bb8ea378a223eb6eaf89e0be2823c6f87c0e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 14:07:12 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 14:07:12 2011 -0800"
      },
      "message": "Notify the debugger of class preparation.\n\nChange-Id: Ic9863d0cc1176c474df2239a286a01393845d589\n"
    },
    {
      "commit": "d07986fad0d08cdf05505cf9230714a2cf0dd9ae",
      "tree": "731b6abf2c2e0a5e51453a80029e1a9073b12354",
      "parents": [
        "7fe2c691866ad643b9e21dd2c9d36fa79ec454c3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 06 18:27:45 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 07 09:16:24 2011 -0800"
      },
      "message": "Implement JDWP InvokeMethod and breakpoints on exception throwing.\n\nChange-Id: I1142bee843104f0850fd7270752104d5d73a44f0\n"
    },
    {
      "commit": "86b0010c79ef95b5333cd540b7d3af34a9f1a643",
      "tree": "d0285c356c0d7af5e412aa0bc19af04185dde9c1",
      "parents": [
        "cccd84f1f972f1a260c3be418c8388a5d30cf59e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 17:54:26 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 17:54:26 2011 -0800"
      },
      "message": "Implement JDWP StackFrame.ThisObject.\n\nI found a way to test this too.\n\nChange-Id: Ia9451c97d5b4269f63c6b8d75f145583db7dfff5\n"
    },
    {
      "commit": "cccd84f1f972f1a260c3be418c8388a5d30cf59e",
      "tree": "659537150070497c1afea72e67466619301f0bc3",
      "parents": [
        "3325596fbbcc9a0a93937976b5c128fd34851670"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 16:51:54 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 05 16:51:54 2011 -0800"
      },
      "message": "Implement local setting.\n\nI\u0027ve also worked out how to test CreateString and CreateObject, but\nnot CreateArrayObject yet.\n\nAlso stop saying \"cnt\".\n\nChange-Id: I26569ff6c4fa356fb91e6c22cbf8ced95094fabd\n"
    },
    {
      "commit": "6fa602d614d418f38afebb4d44f42e7dc0b4bd94",
      "tree": "90a8fcbead7ee9b5536916c9750c3889d5aebe3e",
      "parents": [
        "aed4be94da51b4fbb54c728151f0daf11535f6ab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 17:54:25 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 17:54:25 2011 -0800"
      },
      "message": "Implement static field getting/setting, and basic Eclipse support.\n\nEclipse uses a few new calls that I hadn\u0027t seen from any of the other\ndebuggers.\n\nChange-Id: Iccb45f226431b6cd30a17f7b5ee8397e0838c1fc\n"
    },
    {
      "commit": "aed4be94da51b4fbb54c728151f0daf11535f6ab",
      "tree": "75b2d9b28862b1aa8529199964bf91a4b3df4c9d",
      "parents": [
        "f03b8f66511a2d8cb78d306f36feb51392232a5e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 16:16:23 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Dec 02 16:16:23 2011 -0800"
      },
      "message": "Implement field getting and setting.\n\nThis lets you use \"dump\" and \"set \u003cobject\u003e.\u003cfield\u003e \u003d \u003cvalue\u003e\".\n\nChange-Id: I47aee563b26e04f4931ac1cf3de2cd2e38db35a7\n"
    },
    {
      "commit": "24437995cdac88b42e42b16d9aa121e833330999",
      "tree": "3d6cb71a3301541f37c49fe7db3722d91a41ff90",
      "parents": [
        "8c364127225f9b0da8ab0aa817d0b6915145e60b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 14:49:33 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 16:37:22 2011 -0800"
      },
      "message": "More JDWP array support.\n\nThis lets you examine array elements in jdb.\n\nChange-Id: I74698496311015b4ba8fc5bdad15a21904106316\n"
    },
    {
      "commit": "68fdbd07fc2b8856905e06f3cc945b046c3bfcd3",
      "tree": "b8982040e6a2fe250b3db127ea0b1dfdba552616",
      "parents": [
        "8aa6fc39f5cc0279d4ba2ee064de9758560dfedd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 29 19:22:47 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 30 12:11:23 2011 -0800"
      },
      "message": "Return values for locals, so \"locals\" can show them.\n\nAlso implement a couple of other JDWP commands so jdb can show the length\nof arrays and the value of strings.\n\nChange-Id: Ib2a4dc2ee784ee10bdb924e91b0150aa8a96845d\n"
    },
    {
      "commit": "dbb4079eb1e7d7738c81a97c8dd2550885c1093a",
      "tree": "733d5c08027ae65fb89132609d2aec9e6e2d747d",
      "parents": [
        "25e79a5e9ecd4bf30e0ea90a7dd4313f7f44bc3c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:05:22 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 18 17:47:00 2011 -0800"
      },
      "message": "Start implementing jdb \"locals\".\n\nThis lets us show the names and types of the locals, but all the values\nwill show up as 0/null. We\u0027re going to have to walk the whole stack and\ntake callee-save frames into account to do that right.\n\nChange-Id: Ic6e115513b6e65ae7ed4b7274e70bc514e83190a\n"
    },
    {
      "commit": "03181a828cd493545b278e0aa4f150fdaf1e3325",
      "tree": "eda89723d770a75c104170b6e1a09feb44053e3d",
      "parents": [
        "499c5133d361e7c659fc38e5ccfeb1280a7996f5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 17:22:21 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 17:41:59 2011 -0800"
      },
      "message": "Implement debugger support for getting thread stacks.\n\nYou can now \"where all\" in jdb.\n\nChange-Id: Iccff0427f39b2f2ab3786f05b89850d50b87adb2\n"
    },
    {
      "commit": "499c5133d361e7c659fc38e5ccfeb1280a7996f5",
      "tree": "1b7d865502e90b32483f3cf69f7b3217ea821e0f",
      "parents": [
        "a2e54f61453a2072181d5dd7aa2d5e845f5b53f6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 14:55:11 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 14:55:11 2011 -0800"
      },
      "message": "Implement debugger support for the \"threads\" command.\n\nChange-Id: I266d28ee00d87fdc7ecb179ddf52634db96e573c\n"
    },
    {
      "commit": "a2e54f61453a2072181d5dd7aa2d5e845f5b53f6",
      "tree": "4ca063dd40b4c246097aa31d4d79ddf14d0420a7",
      "parents": [
        "761928d24e4e7ed7776b52243eaf9095ad35f448"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 13:01:30 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 13:01:30 2011 -0800"
      },
      "message": "More debugger support.\n\nThis lets you attach jdb. Quitting will let your program run to completion.\nThis also fixes the \"class\", \"fields\", and \"methods\" commands.\n\nChange-Id: I6645f52dd8b5847454a553c31c80a2f5bf8f1000\n"
    },
    {
      "commit": "761928d24e4e7ed7776b52243eaf9095ad35f448",
      "tree": "62a9d0c880c5412050e3eabe73c106c5374555dc",
      "parents": [
        "a215526d5c789cbef0f81a1f9aba22541a841cca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 18:33:03 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 17 09:55:08 2011 -0800"
      },
      "message": "Implement a bit more debugger functionality.\n\nThis fixes the deadlock by making SuspendSelfForDebugger not take the thread\nlist lock, making it more like the equivalent code in dalvikvm.\n\nThere\u0027s also some code cleanup, and a few more of the JDWP calls jdb makes\non startup. By fixing the deadlock, attaching jdb now causes us to hit\nunimplemented code relating to thread stacks. That\u0027s tomorrow\u0027s job...\n\nChange-Id: I7eac1b95946228fa60666587ff8766bcabb28bb1\n"
    },
    {
      "commit": "a215526d5c789cbef0f81a1f9aba22541a841cca",
      "tree": "4d6baa6e24d41027300bd22a7b7746267dd45f23",
      "parents": [
        "254db0ff7ea6509a1c2914b1d9532e2041a0c4c4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:26:58 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 16 16:56:41 2011 -0800"
      },
      "message": "Implement enough JDWP functionality that we can attach jdb.\n\nYou can also try \"classes\" and \"classpath\", though anything else\ndeadlocks because we\u0027re suspended but jdb thinks we aren\u0027t. I don\u0027t\nthink that\u0027s a new bug with this patch, though, so I\u0027ll look at that\nnext.\n\nChange-Id: I54456b6a7fe72642be696c66aa485dc0c8a7f913\n"
    },
    {
      "commit": "21f32d704a21bcd67d7b87b149b6314ff92946cb",
      "tree": "5546826bb2f700d88f3561c660b6e74eefc52b7d",
      "parents": [
        "545a064aca775ba801790fced3d713d8a87bfc61"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 09 17:44:13 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 09 18:21:37 2011 -0800"
      },
      "message": "Fix some DDMS stuff I\u0027d broken, and fix HexDump\u0027s double-spacing.\n\nChange-Id: I6583458a818406197744cc640b0993f73cfd5384\n"
    },
    {
      "commit": "545a064aca775ba801790fced3d713d8a87bfc61",
      "tree": "5c7aefe4e2ec7736f1fc8eea3b99a9df05bbae1c",
      "parents": [
        "3697d2459983c1f0a3d6efaefb2b6a1110af28df"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Nov 08 19:10:03 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 09 15:58:49 2011 -0800"
      },
      "message": "Implement DDMS recent allocation tracking.\n\nChange-Id: I7cec7311ba496f93e147ae17fbce94d4d17b5269\n"
    },
    {
      "commit": "8218847294600bbfcdc041a46c2b579b6e70cf3b",
      "tree": "4beb913b0a0d3410fb1b6f9b690c63c7aefb53bd",
      "parents": [
        "6c9c06dbb0b16714079afaedbebd3d548aa832b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 18:11:48 2011 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 07 18:11:48 2011 -0800"
      },
      "message": "Implement thread name change notification for DDMS.\n\nChange-Id: If63d89991951989f27ee267895244e115661dce9\n"
    },
    {
      "commit": "7162ad937f5f6bec32bf78d4675ff65cd6d1a233",
      "tree": "78bd960316746977400a9fc1772fbedeb821faae",
      "parents": [
        "f7c3b6625d710a8700325eea447f65e9f963b7f2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 14:08:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 14:08:42 2011 -0700"
      },
      "message": "Implement DDMS heap info (\"HPIF\") chunks.\n\nThis lets you see how many bytes/objects are in your managed heap.\n\nChange-Id: Ie925207e9c48989a24968633e60b99314d220865\n"
    },
    {
      "commit": "f7c3b6625d710a8700325eea447f65e9f963b7f2",
      "tree": "878078368ad75616d32e03a2f380614aa8ce9c36",
      "parents": [
        "baba887a4f5d2a454ab3f8f36a26346f8fdd0670"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 12:04:56 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 27 12:04:56 2011 -0700"
      },
      "message": "Fix orthography of the jdwp_bits.h functions.\n\nChange-Id: I31ca68e517bcf44570ab329b55f67b29877deff1\n"
    },
    {
      "commit": "234ab15b00f8120282d1833e5d7480eca2e35a29",
      "tree": "80f30c5cc581a1522369ebbae3e81182aad89dfd",
      "parents": [
        "c37e9a5c68724d09539f0b6bc3e4877faa597b39"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 14:02:26 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 26 14:24:38 2011 -0700"
      },
      "message": "Implement Dbg::Disconnected and Dbg::UndoDebuggerSuspensions.\n\nYou can now start and stop oatexec-based apps with DDMS running, with\nno UNIMPLEMENTEDs.\n\nChange-Id: Ic53e7bdd4ddd3ed93f9d807499d991ea30f48810\n"
    },
    {
      "commit": "475fc23a4a7f35d1be87ea0b06c80df317a720ac",
      "tree": "91954099b3f4168a4bb97613219d1f5e329c1597",
      "parents": [
        "6ba581a6711c4fed24828c9a294b1b49ac6bbb30"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 15:00:35 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 15:00:35 2011 -0700"
      },
      "message": "More debugger support.\n\nThis gets us as far as the first DDMS-specific message, which means\nit\u0027s time to bring in a bunch more code.\n\nChange-Id: I3f9d75706d5ddde0aa21fcca558132282b94eff4\n"
    },
    {
      "commit": "6ba581a6711c4fed24828c9a294b1b49ac6bbb30",
      "tree": "d72624acfbd9ca5cc9be2996d70a526d4b6d2862",
      "parents": [
        "1158fc5479a5e7962c978a2508034d51c043ba69"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 11:45:35 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 25 11:45:35 2011 -0700"
      },
      "message": "Implement ThreadContinuing and detach the JDWP thread before it exits.\n\nThis fixes Calculator.\n\nChange-Id: Ic38e234a91469e9694e21bbf1507912b542bf908\n"
    },
    {
      "commit": "376a7a033d29d5f2b6e16574a340c999ff2999a0",
      "tree": "9f5207f6185b615219ede2f0125677ca80975052",
      "parents": [
        "d1cc8363d4f4bbac7568b1d02a5ca481cd10830f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 18:35:55 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 18:35:55 2011 -0700"
      },
      "message": "Turn free functions that take a JdwpState* into member functions.\n\nChange-Id: Idf96803c12e160939dbc98be2df41c35a10987da\n"
    },
    {
      "commit": "d1cc8363d4f4bbac7568b1d02a5ca481cd10830f",
      "tree": "df0c401ed6d5e4e9153268c3f336ead459a84cfc",
      "parents": [
        "4ffd31315bc0d00ec278e85feed15985de5ac3dc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 16:58:50 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 24 16:58:50 2011 -0700"
      },
      "message": "Wire up enough of the pieces that we can connect ddms or jdb.\n\n(And die with an UNIMPLEMENTED as soon as they connect, of course.)\n\nChange-Id: I9abb25d581384361c215b3cd96b8278c751e79ea\n"
    },
    {
      "commit": "872d4ec7225444d9400d30f9027247deb91012fd",
      "tree": "f293f31987efc6b43ab64fe043390959dc59c816",
      "parents": [
        "8f903f2c1832a93d3b479d412664e0972cc14d6a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 21 17:07:15 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 21 17:51:01 2011 -0700"
      },
      "message": "Bring across the JDWP implementation.\n\nThis compiles and links, but does nothing until we fill out the 100 or so\nunimplemented methods in \"debugger.cc\". Note that I also need to add the\nextra command-line handling for the JDWP agent stuff, and add calls from\nthe runtime to the various \"something interesting is going on\" hooks.\n\nChange-Id: I477cf3caf9e248c384ce1d739cbfadb60e2008bc\n"
    }
  ]
}
