)]}'
{
  "commit": "caa9d8df0fca004a48cd9fd5048abaaaf2dd3eb1",
  "tree": "13123620a8ef92743e00c8ebb1143ba8f00a39b1",
  "parents": [
    "ddebf91709252da30a53ce7122e9ce44dc702793"
  ],
  "author": {
    "name": "Guinevere Larsen",
    "email": "guinevere@redhat.com",
    "time": "Thu May 28 15:36:33 2026 -0300"
  },
  "committer": {
    "name": "Guinevere Larsen",
    "email": "guinevere@redhat.com",
    "time": "Fri Jul 03 10:33:16 2026 -0300"
  },
  "message": "gdb/record: Refactor record history\n\nThis is the first step in a large refactor in how GDB keeps execution\nhistory.  Rather than using a linked list where multiple entries can\ndescribe a single instruction, the history will now be stored in an\nstd::deque, each instruction being one entry in the deque.\n\nThe choice was initially to use an std::vector, but it would become\nunwieldy because it needs all the memory to be consecutive, which is\nhard for 200 thousand entries. Deque was picked because it was a nice\nmidpoint between vector (maximum cache cohesion) and linked list\n(maximum ease of finding space to store more).\n\nEach instruction in memory will be now one record_full_instruction\nentry, which for this commit just contains a vector of\nrecord_full_entry for the effects of the instruction, and the data that\nwas stored in the record_full_end entry (that is, the instruction number\nand the signal, if any).\n\nThis change introduced a minimal performance improvement (what\u0027s\nimportant is that it isn\u0027t a degradation) and a  reduction in the total\nmemory footprint of roughly 20% if the entire history is used.\n\nReviewed-by: Thiago Jung Bauermann \u003cthiago.bauermann@linaro.org\u003e\nReviewed-By: Christina Schimpe \u003cchristina.schimpe@intel.com\u003e\nApproved-By: Guinevere Larsen \u003cguinevere@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "886e7ce1e7b6e741cd7612b07d574ffef02697f7",
      "old_mode": 33188,
      "old_path": "gdb/aarch64-tdep.c",
      "new_id": "a84da1fd59eb94ee792a633b8aeb371091dc7bca",
      "new_mode": 33188,
      "new_path": "gdb/aarch64-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "a5ac26654cff481f4f41cc2f693faa34af341a24",
      "old_mode": 33188,
      "old_path": "gdb/amd64-linux-tdep.c",
      "new_id": "9b23db72bbe0b806031ac7db8bfb37f24779d600",
      "new_mode": 33188,
      "new_path": "gdb/amd64-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "13f45b8dfd50a128c96302f3c5f01f73b2d84522",
      "old_mode": 33188,
      "old_path": "gdb/arm-tdep.c",
      "new_id": "db423c60b097055c3b2511ee33144501ca957919",
      "new_mode": 33188,
      "new_path": "gdb/arm-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "23aeccac9fc64e608baa2f1b74e42c03e1821f86",
      "old_mode": 33188,
      "old_path": "gdb/i386-linux-tdep.c",
      "new_id": "4f33766fcdddc39bfcad15e7e05a52081f8e8a37",
      "new_mode": 33188,
      "new_path": "gdb/i386-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "a19d774841c8a50b0d8457e9cc9c6ad869651f8d",
      "old_mode": 33188,
      "old_path": "gdb/i386-tdep.c",
      "new_id": "a09eac002516abfaefe33446af5e0ea7eda86d9e",
      "new_mode": 33188,
      "new_path": "gdb/i386-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "1eeebbd562f3fcbabf8581af94704f05f84af49a",
      "old_mode": 33188,
      "old_path": "gdb/loongarch-tdep.c",
      "new_id": "eee5479c7e2d1c5cde3d3b8106f4a2f66e953573",
      "new_mode": 33188,
      "new_path": "gdb/loongarch-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "f99ad44df72b6685e2e029c00743c8ab54dad319",
      "old_mode": 33188,
      "old_path": "gdb/moxie-tdep.c",
      "new_id": "c1e971ded223fc0521555ee0b05b25fc9697d14e",
      "new_mode": 33188,
      "new_path": "gdb/moxie-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "abf624f8843bae456e3c55518e593f4356ada5b7",
      "old_mode": 33188,
      "old_path": "gdb/ppc-linux-tdep.c",
      "new_id": "1d54b72bb1dc2b912a90e61aa9253b0eccbd8b74",
      "new_mode": 33188,
      "new_path": "gdb/ppc-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "bd3ea7ef962c292fc5b46443d2b5d93782eac090",
      "old_mode": 33188,
      "old_path": "gdb/record-full.c",
      "new_id": "e3ea34433a5eda234cef755a651741bd1059f02d",
      "new_mode": 33188,
      "new_path": "gdb/record-full.c"
    },
    {
      "type": "modify",
      "old_id": "51effe745609bac233c09ecd312efa2b3d6a3422",
      "old_mode": 33188,
      "old_path": "gdb/record-full.h",
      "new_id": "c327d879a8a8c31e1117a7b8d694d0c93d5fa6fe",
      "new_mode": 33188,
      "new_path": "gdb/record-full.h"
    },
    {
      "type": "modify",
      "old_id": "fe88379281c8e24a7621d0b480d4ee7ef14fc019",
      "old_mode": 33188,
      "old_path": "gdb/riscv-tdep.c",
      "new_id": "1751d78a5f3118d88f49ae30f6076a053f51cd1a",
      "new_mode": 33188,
      "new_path": "gdb/riscv-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "e135df94a4067e648a81173aec5f1e3acfa5fb88",
      "old_mode": 33188,
      "old_path": "gdb/rs6000-tdep.c",
      "new_id": "f964889a49f9f1424b93af8e4428c9819739c39c",
      "new_mode": 33188,
      "new_path": "gdb/rs6000-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "174e0479fbe5c7cfde0fa24d21f358fb4b8dbe99",
      "old_mode": 33188,
      "old_path": "gdb/s390-linux-tdep.c",
      "new_id": "40f62a8264359243c18cd7f1d8fa54d77f545c42",
      "new_mode": 33188,
      "new_path": "gdb/s390-linux-tdep.c"
    },
    {
      "type": "modify",
      "old_id": "25a5e064c6a738c252738323b60e9700a5a2ed3a",
      "old_mode": 33188,
      "old_path": "gdb/s390-tdep.c",
      "new_id": "f74e55284c0d8dc084248af37e307a8a20f4d9e4",
      "new_mode": 33188,
      "new_path": "gdb/s390-tdep.c"
    }
  ]
}
