)]}'
{
  "commit": "7d01b85c2a0aa8bc91f731cfeb2a7b6885b8d04a",
  "tree": "0cba1e1c61c25e552bd3227247a45356de061a8b",
  "parents": [
    "f6ac5276ee364b3b22ce746439e0ce3224dc9091"
  ],
  "author": {
    "name": "David Spickett",
    "email": "david.spickett@linaro.org",
    "time": "Fri May 02 12:54:03 2025 +0000"
  },
  "committer": {
    "name": "David Spickett",
    "email": "david.spickett@linaro.org",
    "time": "Fri May 02 13:00:12 2025 +0000"
  },
  "message": "Reland \"[lldb] Do not bump memory modificator ID when \"internal\" debugger memory is updated (#129092)\"\n\nThis reverts commit daa4061d61216456baa83ab404e096200e327fb4.\n\nOriginal PR https://github.com/llvm/llvm-project/pull/129092.\n\nI have restricted the test to X86 Windows because it turns out the only\nreason that `expr x.get()` would change m_memory_id is that on x86 we\nhave to write the return address to the stack in ABIWindows_X86_64::PrepareTrivialCall:\n```\n  // Save return address onto the stack\n  if (!process_sp-\u003eWritePointerToMemory(sp, return_addr, error))\n    return false;\n```\n\nThis is not required on AArch64 so m_memory_id was not changed:\n```\n(lldb) expr x.get()\n(int) $0 \u003d 0\n(lldb) process status -d\nProcess 15316 stopped\n* thread #1, stop reason \u003d Exception 0x80000003 encountered at address 0x7ff764a31034\n    frame #0: 0x00007ff764a31038 TestProcessModificationIdOnExpr.cpp.tmp`main at TestProcessModificationIdOnExpr.cpp:35\n   32     __builtin_debugtrap();\n   33     __builtin_debugtrap();\n   34     return 0;\n-\u003e 35   }\n   36\n   37   // CHECK-LABEL: process status -d\n   38   // CHECK: m_stop_id: 2\nProcessModID:\n  m_stop_id: 3\n  m_last_natural_stop_id: 0\n  m_resume_id: 0\n  m_memory_id: 0\n```\n\nReally we should find a better way to force a memory write here, but\nI can\u0027t think of one right now.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d1489a2c96ea49e023ae6c699ac385e5f4128e5",
      "old_mode": 33188,
      "old_path": "lldb/include/lldb/Target/Memory.h",
      "new_id": "864ef6ca008022d08442a9401467e2fbc29f4806",
      "new_mode": 33188,
      "new_path": "lldb/include/lldb/Target/Memory.h"
    },
    {
      "type": "modify",
      "old_id": "f5ee01d3fa713c2b05eeb370be96d1ea6260c95d",
      "old_mode": 33188,
      "old_path": "lldb/include/lldb/Target/Process.h",
      "new_id": "536a69fb897590de5893e79242fd69998d3c76d3",
      "new_mode": 33188,
      "new_path": "lldb/include/lldb/Target/Process.h"
    },
    {
      "type": "modify",
      "old_id": "ed80c854ed66ee0870da8d7101674885dd8e31e5",
      "old_mode": 33188,
      "old_path": "lldb/source/Commands/CommandObjectProcess.cpp",
      "new_id": "d0f5eaf2dfd9a7b25688ef2341488b1b93229de1",
      "new_mode": 33188,
      "new_path": "lldb/source/Commands/CommandObjectProcess.cpp"
    },
    {
      "type": "modify",
      "old_id": "346ca4aeb76a00ca2b3384dc75b8fb7c8fbafaf8",
      "old_mode": 33188,
      "old_path": "lldb/source/Commands/Options.td",
      "new_id": "eb2e5113ed83e53e1b86e00903eda13fa2d30bea",
      "new_mode": 33188,
      "new_path": "lldb/source/Commands/Options.td"
    },
    {
      "type": "modify",
      "old_id": "5cdd84f6640f007ede95405dfe5852954b184cf5",
      "old_mode": 33188,
      "old_path": "lldb/source/Target/Memory.cpp",
      "new_id": "a23a50718712daf351d45a08a570a5d671b03b88",
      "new_mode": 33188,
      "new_path": "lldb/source/Target/Memory.cpp"
    },
    {
      "type": "modify",
      "old_id": "25579249f73c96ce352f7cfba95209ec1326afff",
      "old_mode": 33188,
      "old_path": "lldb/source/Target/Process.cpp",
      "new_id": "ce64b44846a5d5584a7972b3adddf56c2df1e91c",
      "new_mode": 33188,
      "new_path": "lldb/source/Target/Process.cpp"
    },
    {
      "type": "modify",
      "old_id": "3940ac00a2bd9c77659efc28355f7ea4c546b39d",
      "old_mode": 33188,
      "old_path": "lldb/source/Target/TargetProperties.td",
      "new_id": "14fa33cc22c1829dcb5d8bdc6202170cda82c3b3",
      "new_mode": 33188,
      "new_path": "lldb/source/Target/TargetProperties.td"
    },
    {
      "type": "modify",
      "old_id": "4eb868430b0068f11e554348baebe67d0d47e31e",
      "old_mode": 33188,
      "old_path": "lldb/test/API/commands/settings/TestSettings.py",
      "new_id": "4f4fa0e032b507ae9cbf4f630c9874faf6e844ed",
      "new_mode": 33188,
      "new_path": "lldb/test/API/commands/settings/TestSettings.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4fc88b62730c7b7fd4ec1c72c07e02cddfb47b78",
      "new_mode": 33188,
      "new_path": "lldb/test/Shell/Expr/TestExprWithSideEffect.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b41a81f6f31a9f0a97df77c4ec8c278c5ef8f695",
      "new_mode": 33188,
      "new_path": "lldb/test/Shell/Expr/TestExprWithSideEffectOnConvenienceVar.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8ac4b961f1ca9acb389bcd71d4b302a938b9c19a",
      "new_mode": 33188,
      "new_path": "lldb/test/Shell/Expr/TestExprWithSideEffectOnConvenienceVarWindows.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe6c2fd93303cbca6ff263009b2c3c8ac154d835",
      "new_mode": 33188,
      "new_path": "lldb/test/Shell/Expr/TestProcessModificationIdOnExpr.cpp"
    }
  ]
}
