)]}'
{
  "commit": "522044dc5fa76f9fef70fe746274daf09bbf64fe",
  "tree": "9e4d312f20173d7ef86e6e94cd077dc6e731ad35",
  "parents": [
    "f3d3bbbcdd8af6295458eee3b023447c13edabd3"
  ],
  "author": {
    "name": "Kevin Buettner",
    "email": "kevinb@redhat.com",
    "time": "Mon Feb 27 16:11:37 2023 -0700"
  },
  "committer": {
    "name": "Kevin Buettner",
    "email": "kevinb@redhat.com",
    "time": "Mon Feb 27 16:20:38 2023 -0700"
  },
  "message": "Introduce gdb_exception_forced_quit\n\nThis commit adds a new exception \u0027gdb_exception_forced_quit\u0027, reason\ncode \u0027REASON_FORCED_QUIT\u0027, return mask \u0027RETURN_MASK_FORCED_QUIT\u0027, and\na wrapper for throwing the exception, throw_forced_quit().\n\nThe addition of this exception plus supporting code will allow us to\nrecognize that a SIGTERM has been received by GDB and then propagate\nrecognition of that fact to the upper levels of GDB where it can be\ncorrectly handled.  At the moment, when GDB receives a SIGTERM, it\nwill attempt to exit via a series of calls from the QUIT checking\ncode.  However, before it can exit, it must do various cleanups, such\nas killing or detaching all inferiors.  Should these cleanups be\nattempted while GDB is executing very low level code, such as reading\ntarget memory from within ps_xfer_memory(), it can happen that some of\nGDB\u0027s state is out of sync with regard to the cleanup code\u0027s\nexpectations.  In the case just mentioned, it\u0027s been observed that\ninferior_ptid and the current_thread_ are not in sync; this triggers\nan assert / internal error.\n\nThis commit only introduces the exception plus supporting machinery;\nchanges which use this new exception are in later commits in this\nseries.\n\nBug: https://sourceware.org/bugzilla/show_bug.cgi?id\u003d26761\nTested-by: Tom de Vries \u003ctdevries@suse.de\u003e\nApproved-by: Pedro Alves \u003cpedro@palves.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d0dd8081c41fc9053eaa3ccf9a23dd77aa4f03e9",
      "old_mode": 33188,
      "old_path": "gdbsupport/common-exceptions.cc",
      "new_id": "edc1b56181a83e2033c6a94279023f41f8de5eed",
      "new_mode": 33188,
      "new_path": "gdbsupport/common-exceptions.cc"
    },
    {
      "type": "modify",
      "old_id": "a2a4f5a389282096d33c6c1b04480b055e1f56e9",
      "old_mode": 33188,
      "old_path": "gdbsupport/common-exceptions.h",
      "new_id": "f9b59ece7362145b69f4dbfb03b0fcf5cb63cf85",
      "new_mode": 33188,
      "new_path": "gdbsupport/common-exceptions.h"
    }
  ]
}
