)]}'
{
  "commit": "3a29292356cd26830dd771cf8ada376d132280a6",
  "tree": "8521ab0fece6207b314b5eb31b763be3382fdb46",
  "parents": [
    "89e57567f5f1bd09a1049970e4b020317ba3e701"
  ],
  "author": {
    "name": "Tom Tromey",
    "email": "tom@tromey.com",
    "time": "Fri Jan 14 19:15:53 2022 -0700"
  },
  "committer": {
    "name": "Tom Tromey",
    "email": "tom@tromey.com",
    "time": "Fri Apr 29 16:14:31 2022 -0600"
  },
  "message": "Convert watchpoints to vtable ops\n\nThis converts watchpoints and masked watchpoints. to use\nvtable_breakpoint_ops.  For masked watchpoints, a new subclass must be\nintroduced, and watch_command_1 is changed to create one.\n\n\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "90f87b6352fe369451c2d8863c8e5d39596c481b",
      "old_mode": 33188,
      "old_path": "gdb/breakpoint.c",
      "new_id": "d3a1bea399f32116971bb80c36d4c1fa1e6537a6",
      "new_mode": 33188,
      "new_path": "gdb/breakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "ceeabb0d2fd5db7b9e3b0c3709e603bc031fcc82",
      "old_mode": 33188,
      "old_path": "gdb/breakpoint.h",
      "new_id": "3d7a59076f095f19fd4ec408c19cee8b348876dd",
      "new_mode": 33188,
      "new_path": "gdb/breakpoint.h"
    }
  ]
}
