)]}'
{
  "commit": "e94c6091c93a72e9b81cf8d6394495d043b409d4",
  "tree": "52484d0fb2037ce2b89c08e56cad890030b582ae",
  "parents": [
    "ce159d20e52add25e51f2aa8c504726221b204ba"
  ],
  "author": {
    "name": "Jason Molenda",
    "email": "jmolenda@apple.com",
    "time": "Mon Jun 30 21:27:53 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 30 21:27:53 2025 -0700"
  },
  "message": "[lldb][Mach-O] Fix several bugs in x86_64 Mach-O corefile (#146460)\n\nreading, and one bug in the new RegisterContextUnifiedCore class.\n\nThe PR I landed a few days ago to allow Mach-O corefiles to augment\ntheir registers with additional per-thread registers in metadata exposed\na few bugs in the x86_64 corefile reader when running under different CI\nenvironments. It also showed a bug in my RegisterContextUnifiedCore\nclass where I wasn\u0027t properly handling lookups of unknown registers\n(e.g. the LLDB_GENERIC_RA when debugging an intel target).\n\nThe Mach-O x86_64 corefile support would say that it had fpu \u0026 exc\nregisters available in every corefile, regardless of whether they were\nactually present. It would only read the bytes for the first register\nflavor in the LC_THREAD, the GPRs, but it read them incorrectly, so\nsometimes you got more register context than you\u0027d expect. The LC_THREAD\nregister context specifies a flavor and the number of uint32_t words;\nthe ObjectFileMachO method would read that number of uint64_t\u0027s,\nexceeding the GPR register space, but it was followed by FPU and then\nEXC register space so it didn\u0027t crash. If you had a corefile with GPR\nand EXC register bytes, it would be written into the GPR and then FPU\nregister areas, with zeroes filling out the rest of the context.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4394caf7f31e9ab6def8d160699d4e2a4eec58da",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp",
      "new_id": "70f954cd5413fce5cf02b8f0179e13c05db88c42",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp"
    },
    {
      "type": "modify",
      "old_id": "16568f788c2022535fda0e7d0fa334f1a274f1cb",
      "old_mode": 33188,
      "old_path": "lldb/source/Plugins/Process/mach-core/RegisterContextUnifiedCore.cpp",
      "new_id": "449f85bc3f52ae82307e821bfa80678fa86c9a1e",
      "new_mode": 33188,
      "new_path": "lldb/source/Plugins/Process/mach-core/RegisterContextUnifiedCore.cpp"
    }
  ]
}
