)]}'
{
  "commit": "80ffe7226459e3edf840d0c23462d93cb560d2de",
  "tree": "558fb8d74b28d63aae0fca8744249931798e7a0d",
  "parents": [
    "52e0b52e6f2dc1dc5a7b95740d22fd616241db67"
  ],
  "author": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Tue Dec 12 15:57:14 2023 +0100"
  },
  "committer": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Tue Dec 12 15:57:14 2023 +0100"
  },
  "message": "Fix gdb.FinishBreakpoint when returning to an inlined function\n\nCurrently, when creating a gdb.FinishBreakpoint in a function\ncalled from an inline frame, it will never be hit:\n```\n(gdb) py fb\u003dgdb.FinishBreakpoint()\nTemporary breakpoint 1 at 0x13f1917b4: file C:/src/repos/binutils-gdb.git/gdb/testsuite/gdb.python/py-finish-breakpoint.c, line 47.\n(gdb) c\nContinuing.\nThread-specific breakpoint 1 deleted - thread 1 no longer in the thread list.\n[Inferior 1 (process 1208) exited normally]\n```\n\nThe reason is that the frame_id of a breakpoint has to be the\nID of a real frame, ignoring any inline frames.\n\nWith this fixed, it\u0027s working correctly:\n```\n(gdb) py fb\u003dgdb.FinishBreakpoint()\nTemporary breakpoint 1 at 0x13f5617b4: file C:/src/repos/binutils-gdb.git/gdb/testsuite/gdb.python/py-finish-breakpoint.c, line 47.\n(gdb) c\nContinuing.\n\nBreakpoint 1, increase_inlined (a\u003d0x40fa5c) at C:/src/repos/binutils-gdb.git/gdb/testsuite/gdb.python/py-finish-breakpoint.c:47\n(gdb) py print(fb.return_value)\n-8\n```\n\nApproved-By: Tom Tromey \u003ctom@tromey.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "627eb2975426ea206a20ec1ae4f4a43173173bd8",
      "old_mode": 33188,
      "old_path": "gdb/python/py-finishbreakpoint.c",
      "new_id": "7f3658decb381be6026e22de42e3d0d51ee7cbbc",
      "new_mode": 33188,
      "new_path": "gdb/python/py-finishbreakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "4ae2d1889cde389fd38578f25d1569e2d69a9298",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/gdb.python/py-finish-breakpoint.c",
      "new_id": "76552a64b16e0f52ef8e1e11c8de40b2cff8be7c",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/py-finish-breakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "e5a46874afd553ee2852806c2055b7b2b4480abd",
      "old_mode": 33188,
      "old_path": "gdb/testsuite/gdb.python/py-finish-breakpoint.exp",
      "new_id": "a6efd241e3184b94c4cabe1fcb3a919df0ea3815",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.python/py-finish-breakpoint.exp"
    }
  ]
}
