)]}'
{
  "commit": "4f3681cc336158fbbbf3333a38eb9f324fdb9bf5",
  "tree": "531af26bdfb4dce427bf0cf306251ff7d54032e0",
  "parents": [
    "f08216536117ada44bdba391114148da554764e1"
  ],
  "author": {
    "name": "Thiago Jung Bauermann",
    "email": "thiago.bauermann@linaro.org",
    "time": "Thu Aug 18 13:42:55 2022 +0100"
  },
  "committer": {
    "name": "Luis Machado",
    "email": "luis.machado@arm.com",
    "time": "Thu Aug 18 14:46:43 2022 +0100"
  },
  "message": "Fix thread\u0027s gdbarch when SVE vector length changes\n\nWhen the inferior program changes the SVE length, GDB can stop tracking\nsome registers as it obtains the new gdbarch that corresponds to the\nupdated length:\n\n  Breakpoint 1, do_sve_ioctl_test () at sve-ioctls.c:44\n  44              res \u003d prctl(PR_SVE_SET_VL, i, 0, 0, 0, 0);\n  (gdb) print i\n  $2 \u003d 32\n  (gdb) info registers\n          ⋮\n  [ snip registers x0 to x30 ]\n          ⋮\n  sp             0xffffffffeff0      0xffffffffeff0\n  pc             0xaaaaaaaaa8ac      0xaaaaaaaaa8ac \u003cdo_sve_ioctl_test+112\u003e\n  cpsr           0x60000000          [ EL\u003d0 BTYPE\u003d0 C Z ]\n  fpsr           0x0                 0\n  fpcr           0x0                 0\n  vg             0x8                 8\n  tpidr          0xfffff7fcb320      0xfffff7fcb320\n  (gdb) next\n  45              if (res \u003c 0) {\n  (gdb) info registers\n          ⋮\n  [ snip registers x0 to x30 ]\n          ⋮\n  sp             0xffffffffeff0      0xffffffffeff0\n  pc             0xaaaaaaaaa8cc      0xaaaaaaaaa8cc \u003cdo_sve_ioctl_test+144\u003e\n  cpsr           0x200000            [ EL\u003d0 BTYPE\u003d0 SS ]\n  fpsr           0x0                 0\n  fpcr           0x0                 0\n  vg             0x4                 4\n  (gdb)\n\nNotice that register tpidr disappeared when vg (which holds the vector\nlength) changed from 8 to 4.  The tpidr register is provided by the\norg.gnu.gdb.aarch64.tls feature.\n\nThis happens because the code that searches for a new gdbarch to match the\nnew vector length in aarch64_linux_nat_target::thread_architecture doesn\u0027t\ntake into account the features present in the target description associated\nwith the previous gdbarch.  This patch makes it do that.\n\nSince the id member of struct gdbarch_info is now unused, it\u0027s removed.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a457fcd48ad878ddf3d4210db453b23cec7d0ea4",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-linux-nat.c",
      "new_id": "eda79ec6d35ce126309cded13102e12ab4578324",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-linux-nat.c"
    },
    {
      "type": "modify",
      "old_id": "f747ebda1ab7aca239acc8f7b95efa1f3077e1dc",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-tdep.c",
      "new_id": "ba9b2d896b77fa48b89ab4ec3cefac2887291c20",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "5bdd733dce3235d4624202e516122decd03de534",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-tdep.h",
      "new_id": "d8513023c3766373c5c2ad645629b2f3fd207e55",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-tdep.h"
    },
    {
      "type": "modify",
      "old_id": "9ac418150b18bd69d9f6a78a34cf7ff50ac2d249",
      "old_mode": 33188,
      "old_path": "gdb/gdbarch.h",
      "new_id": "2f1c7399d78ab8222b7944e54562fccf3d644b53",
      "new_mode": 33188,
      "new_path": "gdb/gdbarch.h"
    }
  ]
}
