)]}'
{
  "commit": "6280d7748522522f8f4cc7fcef899e10ea71ff26",
  "tree": "9b0140e3d1cb685c1fa5c6266557b86750cc159b",
  "parents": [
    "fb72a844439eb554f21a617e021edf70d85e1a90"
  ],
  "author": {
    "name": "Markus Metzger",
    "email": "markus.t.metzger@intel.com",
    "time": "Fri Feb 26 09:04:41 2021 +0100"
  },
  "committer": {
    "name": "Markus Metzger",
    "email": "markus.t.metzger@intel.com",
    "time": "Thu Jan 22 06:27:36 2026 +0000"
  },
  "message": "gdb, infrun: fix multi-threaded reverse stepping\n\nWhen reverse-stepping a thread that has a pending breakpoint event, the\nthread is not resumed as part of the infcmd function.  A first resume\nnotices the event and returns without resuming the target.\n\nIf the corresponding breakpoint has been deleted, event processing results\nin a second resume that performs the intended stepping action.  That\nresume happens after the infcmd function returned and the temporarily\nmodified execution direction was restored.  We end up resuming in the\nwrong direction.\n\nStore the direction in a thread\u0027s control state and change most of\ninfrun to take it from there rather than using the global variable.\n\nReviewed-By: Guinevere Larsen \u003cblarsen@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef355f6913b30c01542c50d8ae8a222a396f48d3",
      "old_mode": 33188,
      "old_path": "gdb/gdbthread.h",
      "new_id": "9135e0d973f1d67b3b4daec6af97a50466190cb4",
      "new_mode": 33188,
      "new_path": "gdb/gdbthread.h"
    },
    {
      "type": "modify",
      "old_id": "8bb3aba1a7cc7b99bed9f23eea76aa9d3464ae0a",
      "old_mode": 33188,
      "old_path": "gdb/infrun.c",
      "new_id": "9a1df597bfe3924b0ae222ce1106110a21107fd0",
      "new_mode": 33188,
      "new_path": "gdb/infrun.c"
    },
    {
      "type": "modify",
      "old_id": "1227472ebc42b0a387f8a35cc95b8d42d7347a19",
      "old_mode": 33188,
      "old_path": "gdb/infrun.h",
      "new_id": "70c419e6ee2d94429f0489cb5c877403472d9a57",
      "new_mode": 33188,
      "new_path": "gdb/infrun.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bbe2d8140a7ed760380ec06b9cf5942d0d135aad",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.btrace/implicit-stop-replaying.exp"
    }
  ]
}
