)]}'
{
  "commit": "2fd9a436c8d24eb0af85ccb3a2fbdf9a9c679a6c",
  "tree": "fdc033bff0e854d5f105863def0f591f5d614609",
  "parents": [
    "02aadca4fbeadbab6584222ca78dbc24c79f5229"
  ],
  "author": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Fri Feb 17 10:48:06 2023 +0000"
  },
  "committer": {
    "name": "Andrew Burgess",
    "email": "aburgess@redhat.com",
    "time": "Tue Feb 28 10:56:28 2023 +0000"
  },
  "message": "gdb: don\u0027t duplicate \u0027thread\u0027 field in MI breakpoint output\n\nWhen creating a thread-specific breakpoint with a single location, the\n\u0027thread\u0027 field would be repeated in the MI output.  This can be seen\nin two existing tests gdb.mi/mi-nsmoribund.exp and\ngdb.mi/mi-pending.exp, e.g.:\n\n  (gdb)\n  -break-insert -p 1 bar\n  ^done,bkpt\u003d{number\u003d\"1\",type\u003d\"breakpoint\",disp\u003d\"keep\",\n\t      enabled\u003d\"y\",\n\t      addr\u003d\"0x000000000040110a\",func\u003d\"bar\",\n\t      file\u003d\"/tmp/mi-thread-specific-bp.c\",\n\t      fullname\u003d\"/tmp/mi-thread-specific-bp.c\",\n\t      line\u003d\"32\",thread-groups\u003d[\"i1\"],\n\t      thread\u003d\"1\",thread\u003d\"1\",  \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d DUPLICATION!\n\t      times\u003d\"0\",original-location\u003d\"bar\"}\n\nI know we need to be careful when adjusting MI output, but I\u0027m hopeful\nin this case, as the field is duplicated, and the field contents are\nalways identical, that we might get away with removing one of the\nduplicates.\n\nThe change in GDB is a fairly trivial condition change.\n\nWe did have a couple of tests that contained the duplicate fields in\ntheir expected output, but given there was no comment pointing out\nthis oddity either in the GDB code, or in the test, I suspect this was\nmore a case of copying whatever output GDB produced and using that as\nthe expected results.  I\u0027ve updated these tests to remove the\nduplication.\n\nI\u0027ve update lib/mi-support.exp to provide support for building\nbreakpoint patterns that contain the thread field, and I\u0027ve made use\nof this in a new test I\u0027ve added that is just about creating\nthread-specific breakpoints and checking the results.  The two tests I\nmentioned above as being updated could also use the new\nlib/mi-support.exp functionality, but I\u0027m going to do that in a later\npatch, this way it is clear what changes I\u0027m actually proposing to\nmake to the expected output.\n\nAs I said, I hope that frontends will be able to handle this change,\nbut I still think its worth adding a NEWS entry, that way, if someone\nruns into problems, there\u0027s a chance they can figure out what\u0027s going\non.\n\nThis should not impact CLI output at all.\n\nReviewed-By: Eli Zaretskii \u003celiz@gnu.org\u003e\nApproved-By: Pedro Alves \u003cpedro@palves.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "75cd11b204eb89a20667701fcc2fc13c7502c626",
      "old_mode": 33188,
      "old_path": "gdb/NEWS",
      "new_id": "bea604d7e756b26a98e4cdf4b4ff92124d9d7939",
      "new_mode": 33188,
      "new_path": "gdb/NEWS"
    },
    {
      "type": "modify",
      "old_id": "7d11f7199fe4786cb91b44919bcb0a50facfc28e",
      "old_mode": 33188,
      "old_path": "gdb/breakpoint.c",
      "new_id": "36c53e5dae611b971825a8c7aa35ed947472f089",
      "new_mode": 33188,
      "new_path": "gdb/breakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "103aa45d7e1d40136674e2c00ace86aa02f38271",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/gdb.mi/mi-nsmoribund.exp",
      "new_id": "55450e4621ac7fb192d9e14c5b58d675ddce1b75",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.mi/mi-nsmoribund.exp"
    },
    {
      "type": "modify",
      "old_id": "153efdf45ceebe95c6cb2b0b4792d86780b5e9cf",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/gdb.mi/mi-pending.exp",
      "new_id": "cd1301c21e34976c8ed8ff8b3f3b057b6bfc3abb",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.mi/mi-pending.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8c87f01f14b7ddac3e22fc717f8450fb6f0eb14c",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.mi/mi-thread-specific-bp.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4586fa44bbc3e70e6efffdb4ec1b7fdfcfe2bf9e",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp"
    },
    {
      "type": "modify",
      "old_id": "767ea72ff7026b4e01ce420fd8daa8c334750a20",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/lib/mi-support.exp",
      "new_id": "3e20afa70494512b211a235a5c4ce91e569941e5",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/lib/mi-support.exp"
    }
  ]
}
