)]}'
{
  "commit": "555cee0edffae996d2aecb7136a57529ec77c258",
  "tree": "86ad41b427832b017bd8a5fd06a8fe15b7ea7c76",
  "parents": [
    "db040a86c8118c80fc02c41096944c6c0faa51ae"
  ],
  "author": {
    "name": "Pedro Alves",
    "email": "pedro@palves.net",
    "time": "Tue May 09 10:27:04 2023 +0100"
  },
  "committer": {
    "name": "Pedro Alves",
    "email": "pedro@palves.net",
    "time": "Fri Apr 24 21:28:44 2026 +0100"
  },
  "message": "Windows gdb+gdbserver: Move suspending thread to when returning event\n\nThe current code suspends a thread just before calling\nGetThreadContext.  You can only call GetThreadContext if the thread is\nsuspended.  But, after WaitForDebugEvent, all threads are implicitly\nsuspended.  So I don\u0027t think we even needed to call SuspendThread\nexplictly at all before our GetThreadContext calls.\n\nHowever, suspending threads when we\u0027re about to present a stop to gdb\nsimplifies adding non-stop support later.  This way, the windows\nSuspendThread state corresponds to whether a thread is suspended or\nresumed from the core\u0027s perspective.  Curiously, I noticed that Wine\u0027s\nwinedbg does something similar:\nhttps://github.com/wine-mirror/wine/blob/234943344f7495d1e072338f0e06fa2d5cbf0aa1/programs/winedbg/gdbproxy.c#L651\n\nThis makes it much easier to reason about a thread\u0027s suspend state,\nand simplifies adding non-stop mode later on.\n\nApproved-By: Tom Tromey \u003ctom@tromey.com\u003e\nChange-Id: Ifd6889a8afc041fad33cd1c4500e38941da6781b\ncommit-id:c4d2c92e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d43ee6f13fe7603ab0fc5063cc769a52f72afd3c",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-windows-nat.c",
      "new_id": "871531bb93a4d8f2c2460cd4d5a8f25baf49b051",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-windows-nat.c"
    },
    {
      "type": "modify",
      "old_id": "30b07221b623ee4dcc3e20676691da829d643c6b",
      "old_mode": 33188,
      "old_path": "gdb/windows-nat.c",
      "new_id": "468f451595d230b3ac377147969b823e4fa0eefd",
      "new_mode": 33188,
      "new_path": "gdb/windows-nat.c"
    },
    {
      "type": "modify",
      "old_id": "5b0f7066fba29eae90c06c7ecfaca67634b5057b",
      "old_mode": 33188,
      "old_path": "gdb/x86-windows-nat.c",
      "new_id": "baa6b969e99a41dd87f17f7fcbaa3dbaec434610",
      "new_mode": 33188,
      "new_path": "gdb/x86-windows-nat.c"
    },
    {
      "type": "modify",
      "old_id": "bf55183f705c41e96217b074560e02395435aadc",
      "old_mode": 33188,
      "old_path": "gdbserver/win32-low.cc",
      "new_id": "d78de17ff195e656c9ce2efa5c0670b8b29bf78e",
      "new_mode": 33188,
      "new_path": "gdbserver/win32-low.cc"
    }
  ]
}
