)]}'
{
  "commit": "bc6a45d2b8759db8e26eadd284b7ee793892e80c",
  "tree": "c0d3feb4cfcce0d37a88ebab8fe9df4c7bde4a48",
  "parents": [
    "39c9aaea70056290e48da6e430b9d1328888c4c4"
  ],
  "author": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Mon Dec 22 12:26:51 2025 +0100"
  },
  "committer": {
    "name": "Hannes Domani",
    "email": "ssbssa@yahoo.de",
    "time": "Mon Dec 22 12:26:51 2025 +0100"
  },
  "message": "Fix crash when breakpoint condition causes inferior exit\n\nWhen using a breakpoint condition that causes an inferior exit, gdb\ncrashes with a null pointer access:\n\n(gdb) b main if callexit()\nBreakpoint 1 at 0x114b: file callexit.c, line 32.\n(gdb) r\nStarting program: /home/src/lappy/binutils-gdb.git/gdb/testsuite/gdb.base/callexit\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library \"/usr/lib/../lib/libthread_db.so.1\".\n[Inferior 1 (process 218586) exited normally]\n../../gdb/infcall.c:895:50: runtime error: member call on null pointer of type \u0027struct thread_fsm\u0027\n../../gdb/infcall.c:895:50: runtime error: member access within null pointer of type \u0027struct thread_fsm\u0027\n\nFix this by checking the thread_fsm pointer beforehand, now the result\nlooks like this:\n\n(gdb) b main if callexit()\nBreakpoint 1 at 0x114b: file callexit.c, line 32.\n(gdb) r\nStarting program: /home/src/lappy/binutils-gdb.git/gdb/testsuite/gdb.base/callexit\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library \"/usr/lib/../lib/libthread_db.so.1\".\n[Inferior 1 (process 220707) exited normally]\n❌ Error in testing condition for breakpoint 1:\nThe program being debugged exited while in a function called from GDB.\nEvaluation of the expression containing the function\n(callexit) will be abandoned.\n❌ No registers.\n(gdb)\n\nBug: https://sourceware.org/bugzilla/show_bug.cgi?id\u003d16156\nApproved-By: Andrew Burgess \u003caburgess@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "67053ae0f0847a38b5924458c41a5156ebf94006",
      "old_mode": 33188,
      "old_path": "gdb/infcall.c",
      "new_id": "ff5e4e19a6e17bdb53f4ec18a2f1bf9638cab3e4",
      "new_mode": 33188,
      "new_path": "gdb/infcall.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e274f1562ca64693520ca23e522552493eed2706",
      "new_mode": 33188,
      "new_path": "gdb/testsuite/gdb.base/exit-in-condition.exp"
    }
  ]
}
