)]}'
{
  "log": [
    {
      "commit": "63da22ce3a708b3788c8d04357d6601ea825a2ae",
      "tree": "32cc299630ea132158910f7cef9588a52aa7653d",
      "parents": [
        "c9db4324aff387c811097101fac0b9414e28e9ac"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Thu Sep 24 09:27:41 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 01:32:37 2026 -0700"
      },
      "message": "[lldb] Add a corefile fuzzer (#225103)\n\nFuzzes the metadata parser when LLDB opens a corefile for Mach-O\nand ELF.\n\nThe fuzzer writes input data to a tempfile and loads it through\n`Process::LoadCore()`, the same way `target create --core` does.\nIt initializes both the macOS and Linux host platforms so the\ncore-load path runs regardless of which of the two OSes the fuzzer\nitself is built on.\n\n`lldb-target-fuzzer` does not reach any of this. It only calls\n`SBDebugger::CreateTarget`, which builds a Target and its executable\nModule; identifying that module parses the Mach-O/ELF header and\nload/section commands, but never calls `Process::LoadCore`.\n\n---------\n\nCo-authored-by: Jonas Devlieghere \u003cjonas@devlieghere.com\u003e\nGitOrigin-RevId: f05c3d51c42b23f1684d74c9084537ac5ea7ca36\n"
    },
    {
      "commit": "c9db4324aff387c811097101fac0b9414e28e9ac",
      "tree": "9ca20805ae00d7dd01c56681b3a056b631f4d806",
      "parents": [
        "e7e35bd81423ad06d659ca44664ab0c45382b98d"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Thu Sep 24 08:27:23 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 24 00:31:21 2026 -0700"
      },
      "message": "[lldb] Fix heap-buffer-overflow in tree-sitter-swift scanner state (#224001)\n\nRunning the `HighlighterTests` unit test under AddressSanitizer aborts\non every Swift test case, for example `SwiftComments`:\n\n```\n\u003d\u003d69424\u003d\u003dERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000008070 at pc 0x000116a1f36c bp 0x00016d07c3c0 sp 0x00016d07c3b8\nREAD of size 4 at 0x602000008070 thread T0\n    #0 0x000116a1f368 in eat_raw_str_part scanner.c:700\n    #1 0x000116a1b5f4 in tree_sitter_swift_external_scanner_scan scanner.c:858\n    #2 0x00012cc77420 in ts_parser_parse\n    #3 0x00012cc79afc in ts_parser_parse_string\n    #4 0x00010a3536a4 in lldb_private::TreeSitterHighlighter::Highlight(...)\n\n0x602000008071 is located 0 bytes after 1-byte region [0x602000008070,0x602000008071)\nallocated by thread T0 here:\n    #0 0x00012d68d560 in calloc\n    #1 0x00012cc763b8 in ts_parser_parse\n    #2 0x00012cc79afc in ts_parser_parse_string\n```\n\n`eat_raw_str_part` reads `state-\u003eongoing_raw_str_hash_count` as its\nfirst statement, a 4 byte field, but the scanner state was allocated\nwith:\n\n```\nvoid *tree_sitter_swift_external_scanner_create() {\n  return calloc(0, sizeof(struct ScannerState));\n}\n```\n\n`calloc` with an element count of 0 has no obligation to reserve room\nfor `sizeof(struct ScannerState)`, so it works by accident, but is\nfound by ASAN.\n\nFix it by allocating one instance, matching the Rust scanner and the\nstruct\u0027s actual use as a single persistent state object across calls.\n\nThe existing `HighlighterTest.Swift*` tests already exercise this path\nend to end and catch the regression under AddressSanitizer; no new\ntest is needed.\n\nGitOrigin-RevId: 93740deeaf7e4201d6117ba51d3f7f961a9d8d56\n"
    },
    {
      "commit": "e7e35bd81423ad06d659ca44664ab0c45382b98d",
      "tree": "995aff9179dbd58a9280e3d8cf65dd7d43348f05",
      "parents": [
        "d8c9393a717aafefeb472aa005bbea05e332507e"
      ],
      "author": {
        "name": "Alex Langford",
        "email": "alangford@apple.com",
        "time": "Wed Sep 23 15:15:47 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 15:21:36 2026 -0700"
      },
      "message": "[lldb] Remove ConstString from IOHandlerCursesGUI.cpp (#225524)\n\nGitOrigin-RevId: 5a03a736fd53f64b66fcb064cd9a6a74214d309b\n"
    },
    {
      "commit": "d8c9393a717aafefeb472aa005bbea05e332507e",
      "tree": "d29fd577ef29e72eb48fd7f0fb8a544298bfc8bf",
      "parents": [
        "cd5418367fcbcf057d0bdff4d5d7ef418ef6756a"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 23 14:23:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:31:04 2026 -0700"
      },
      "message": "[lldb][test] Remove dead a.out rule from TestSBModule\u0027s Makefile (#225943)\n\nThe custom a.out recipe was overridden by the default $(EXE) rule in\nMakefile.rules (\"overriding commands for target \u0027a.out\u0027\"), so a.o and\nb.o were linked directly into a.out rather than through libfoo.a. Build\nonly main.c through C_SOURCES and pass libfoo.a via LD_EXTRAS, so the\ndefault rule links against the archive as intended.\n\nAssisted-by: Claude\nGitOrigin-RevId: a78e641705a45024a01ebd4d79a3d37b790f64f4\n"
    },
    {
      "commit": "cd5418367fcbcf057d0bdff4d5d7ef418ef6756a",
      "tree": "a306549dac1059379359a5e0a03583e80102e23b",
      "parents": [
        "ba8d9f58d7f9e3bcf4e4398517406b4d867ad731"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 23 14:23:31 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:30:29 2026 -0700"
      },
      "message": "[lldb]Simplify Makefile in TestFunctionStarts (#225941)\n\nAssisted-by: Claude\nGitOrigin-RevId: 78d4f5ae88311acba1f81560194f74e2c12ca808\n"
    },
    {
      "commit": "ba8d9f58d7f9e3bcf4e4398517406b4d867ad731",
      "tree": "bea70730990b150fc93232682746d07878d7895f",
      "parents": [
        "7aa35df03ffc5d73c4c33403ec63d95861c8c858"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 23 14:23:07 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:29:54 2026 -0700"
      },
      "message": "[lldb][test] Use the default link rule in TestDeepBundle (#225937)\n\nGitOrigin-RevId: f4f785dcc156778dc940252df9408237cd5b01d1\n"
    },
    {
      "commit": "7aa35df03ffc5d73c4c33403ec63d95861c8c858",
      "tree": "db645cc2daa793290cfba5b45e5ae31128c175db",
      "parents": [
        "14acf44ef403c03fc671cfd09d1eb8f34fcf3d8e"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 23 14:22:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:29:21 2026 -0700"
      },
      "message": "[LLDB] Simplify Makefile for TestBundleWithDotInFilename (#225930)\n\nGitOrigin-RevId: 408ae6803f0cf2d8a65b00d3e1c9534113c5f0be\n"
    },
    {
      "commit": "14acf44ef403c03fc671cfd09d1eb8f34fcf3d8e",
      "tree": "7f38f40b011ea1c4b6d39aadd572e3675d009406",
      "parents": [
        "88a1cf69e51ae4d4b77fc32e5551181a326d063c"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 23 14:22:17 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:28:50 2026 -0700"
      },
      "message": "[LLDB] Simplify Makefile (#225922)\n\nGitOrigin-RevId: b7252822c190a6a924fb15d35b6c4dfa5264fa03\n"
    },
    {
      "commit": "88a1cf69e51ae4d4b77fc32e5551181a326d063c",
      "tree": "e1e67b1db1620f7d79824ac47efb96aa309f10df",
      "parents": [
        "8c3a32dfceffc74633707f93b945ce37b9ab1a01"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Wed Sep 23 22:12:21 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:18:46 2026 -0700"
      },
      "message": "[lldb] Fix dwim-print\u0027s arrow-operator check to match the substring (#225778)\n\n`CommandObjectDWIMPrint::DoExecute` decides whether to try `expr` as a\nlimited, dot-only frame variable path before falling back to full\nexpression evaluation. The comment above the check says a variable\npath is not attempted if `expr` contains the arrow operator (`-\u003e`) or\nthe subscript operator (`[]`), or a bare `*` or `\u0026`:\n```\n    const bool try_variable_path \u003d\n        expr.find_first_of(\"*\u0026-\u003e[]\") \u003d\u003d StringRef::npos;\n```\n`find_first_of` treats its argument as a set of characters so this also\nmatches a lone `-` or a lone `\u003e` anywhere in `expr`, not only the\ntwo-character `-\u003e` sequence the comment describes.\n\nFix the check to test for the `-\u003e` substring directly with\n`StringRef::contains`, keeping `find_first_of` only for the four\ncharacters that are genuinely excluded one at a time (`*`, `\u0026`, `[`,\n`]`).\n\nBy itself, this widens which expressions attempt the variable-path\nfast path (anything with a lone `-` or `\u003e` now does).\nOrdinary arithmetic and comparison expressions containing a lone `-`\nor `\u003e` now correctly attempt, and correctly fail, the variable-path\nfast path before falling through to `expression`, shown here\n```\n    frame #0: liblldb.24.0git.dylib`lldb_private::CommandObjectDWIMPrint::DoExecute(this\u003d\u003cunavailable\u003e, command\u003d\u003cunavailable\u003e, result\u003d\u003cunavailable\u003e) at CommandObjectDWIMPrint.cpp:169:13 [opt]\n    (lldb) settings set dwim-print-verbosity full\n    (lldb) dwim-print expr\n    note: ran `frame variable expr`\n    (llvm::StringRef)  (Data \u003d \"1+1\", Length \u003d 3)\n    (lldb) dwim-print expr.Length-1\n    warning: `this\u0027 is not accessible (substituting 0). Couldn\u0027t load \u0027this\u0027 because its value couldn\u0027t be evaluated\n    note: ran `expression expr.Length-1`\n    (size_t) 2\n    (lldb) dwim-print expr.Length\u003e0\n    warning: `this\u0027 is not accessible (substituting 0). Couldn\u0027t load \u0027this\u0027 because its value couldn\u0027t be evaluated\n    note: ran `expression expr.Length\u003e0`\n    (bool) true\n    (lldb) dwim-print frame-\u003em_frame_index\n    warning: `this\u0027 is not accessible (substituting 0). Couldn\u0027t load \u0027this\u0027 because its value couldn\u0027t be evaluated\n    note: ran `expression frame-\u003em_frame_index`\n    (uint32_t) 0\n```\nAdd more expressions in `TestDWIMPrint.test_expressions`, to cover\nexpressions\ncontaining a lone `-` or `\u003e`.  Note that these tests can\u0027t tell \"the\nexpression is evaluated by DIL but failed\" and \"expression isn\u0027t\nevaluated by DIL at all\".\n\nGitOrigin-RevId: a13aa07af6d0527a14cdc2e2f3fe4ec3d0ccb362\n"
    },
    {
      "commit": "8c3a32dfceffc74633707f93b945ce37b9ab1a01",
      "tree": "4ec774c2bc665c8144014bdb3037647419acbd9c",
      "parents": [
        "32656764cf5d2b27f74027a5904235a68c04837f"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Wed Sep 23 22:11:18 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:18:24 2026 -0700"
      },
      "message": "[lldb] Fix crash on a trailing \u0027-\u0027 in a legacy variable expression path (#225661)\n\n`StackFrame::LegacyGetValueForVariableExpressionPath` walks a variable\nexpression path one separator character at a time. On seeing a `-` it\nchecks that the following character is `\u003e`, to confirm this is really\nthe `-\u003e` operator and not something else:\n```\n    case \u0027-\u0027:\n      expr_is_ptr \u003d true;\n      if (var_expr.size() \u003e\u003d 2 \u0026\u0026 var_expr[1] !\u003d \u0027\u003e\u0027)\n        return ValueObjectSP();\n      ...\n      var_expr \u003d var_expr.drop_front(); // Remove the \u0027-\u0027\n      [[fallthrough]];\n    case \u0027.\u0027: {\n      var_expr \u003d var_expr.drop_front(); // Remove the \u0027.\u0027 or \u0027\u003e\u0027\n```\nThe `var_expr.size() \u003e\u003d 2` guard is only meant to make the `var_expr[1]`\nread safe, but it also disables the whole check when `var_expr` is\nexactly `\"-\"` (size 1) with nothing after it. Execution falls through\nthe `if`, drops the `-` (leaving an empty `StringRef`), then falls\nthrough into the `.` case, which unconditionally drops a second\ncharacter on that now-empty string. `StringRef::drop_front` asserts\n`size() \u003e\u003d N`, so this aborts.\n\nReproduced with `settings set target.experimental.use-DIL false` (the\nlegacy, non-DIL variable-expression-path parser) and a trailing `-`\nwith no variable-path continuation after it:\n```\n    (lldb) settings set target.experimental.use-DIL false\n    (lldb) frame variable somevar-\n    Assertion failed: (size() \u003e\u003d N \u0026\u0026 \"Dropping more elements than exist\"), function drop_front, file StringRef.h, line 636.\n```\nFix the guard to also reject when `var_expr` is too short to contain a\ncharacter after the `-`, not only when that character exists and is\nwrong. After the fix the same command reports an ordinary parse error\ninstead of crashing:\n```\n    (lldb) frame variable somevar-\n    error: unable to find any variable expression path that matches \u0027somevar-\u0027\n```\nAdd\n`TestFrameVar.test_legacy_expression_path_malformed_trailing_operator`,\nwhich runs `frame variable` on a trailing `-`, a trailing `\u003e`, and `-`\nfollowed by something other than `\u003e`, under `use-DIL false`, and checks\neach one fails as an ordinary command error rather than crashing lldb.\n\nGitOrigin-RevId: 1bf9ce86b462aa5a184865ab3a2f7e7ea0b4b350\n"
    },
    {
      "commit": "32656764cf5d2b27f74027a5904235a68c04837f",
      "tree": "885a41baf37ec678156190a2a895c3b212563481",
      "parents": [
        "b38cc2a9353f11dc96e269bb7d59d5f5222275da"
      ],
      "author": {
        "name": "jimingham",
        "email": "jingham@apple.com",
        "time": "Wed Sep 23 13:35:50 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 14:18:04 2026 -0700"
      },
      "message": "Handle stepping through \"lazy library\" stubs (#225238)\n\nThis is a new linker feature that\u0027s available for programs built for\nmacOS 27 and later. The form of the stubs are slightly different, and\nneed a slightly different trick to get through them.\n\nGitOrigin-RevId: d0c787e447e150eedf5aa191cbaf68ab82f468fa\n"
    },
    {
      "commit": "b38cc2a9353f11dc96e269bb7d59d5f5222275da",
      "tree": "c4a58800cc9980091f5f20fd5531a445e655d0ce",
      "parents": [
        "dae683b418e454af9199796372ce8f9a530eba79"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Wed Sep 23 13:32:44 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 13:40:36 2026 -0700"
      },
      "message": "[lldb] Validate a scripted class abstract methods before running its constructor (#225246)\n\n`CreatePluginObject` called the class\u0027s `__init__` and only then checked\nthat the class implements the methods the interface requires. So a class\nwe were always going to reject had already executed arbitrary user code,\nside effects included, and if `__init__` happened to raise as well, the\nconstructor\u0027s exception masked the real, structural problem.\n\nLift the abstract-method diagnosis into `CheckAbstractMethods` and run\nit against the class object before calling it. The check already\noperated on a class rather than an instance (it just happened to reach\nit through `instance.__class__`) so nothing about it needed to change.\nThe pre-existing-object path (`script_obj`) has no constructor to guard,\nso it keeps validating after the fact, gated on a flag so the check runs\nonce.\n\n`ExceptionInitScriptedBreakpointResolver` in the test fixtures claimed\nto test a raising `__init__` but also omitted `__callback__`, so it was\nonly reporting the init exception because construction used to come\nfirst. It now implements `__callback__`, leaving `__init__` as the\nsingle thing wrong with it, which is what the test means to exercise.\n\nSigned-off-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: cfcff78a126040c7757b3343e028a73fc4a17c83\n"
    },
    {
      "commit": "dae683b418e454af9199796372ce8f9a530eba79",
      "tree": "4837620765db272434f7c85825f87437589a68a4",
      "parents": [
        "e7d15fb208646faa798fa26da8e646acc78d47e9"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 23 13:27:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 13:33:01 2026 -0700"
      },
      "message": "[LLDB] Simplify Makefile (#225890)\n\nGitOrigin-RevId: 80b5921a8ba4da49ecb9ea063517ceb573023682\n"
    },
    {
      "commit": "e7d15fb208646faa798fa26da8e646acc78d47e9",
      "tree": "de2dd3d43f5ff809dac9f87508dd2d2b67b0d8f3",
      "parents": [
        "e388f1e54348ba21ce9b0cd103cda653ac311e53"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 23 18:53:37 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 11:04:02 2026 -0700"
      },
      "message": "[lldb][Windows] skip TestMultithreaded.SBBreakpointCallbackCase.test_python_stop_hook (#225862)\n\nThe test is failing in pre-merge testing on Windows.\n\nGitOrigin-RevId: 5eea5218a21a5799bb38d4a36d0d7892b4122fb5\n"
    },
    {
      "commit": "e388f1e54348ba21ce9b0cd103cda653ac311e53",
      "tree": "92d8a4c5d4e6a38d81c24395aae0701d0d45d6b0",
      "parents": [
        "79589e702d56118a07a0891aa6cf433d17a7729d"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 23 18:51:44 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 11:03:36 2026 -0700"
      },
      "message": "[lldb][NativePDB] don\u0027t assert when a public symbol sits past its section (#225734)\n\nFix an assertion failure in `SymbolFileNativePDB::AddSymbols` when a\npublic symbol\u0027s offset doesn\u0027t agree with its section\u0027s size (happens\nwith real-world PDBs after incremental linking). Instead of asserting,\nwe now log and skip the size estimate for that symbol.\n\nAlso adds a regression test that crafts such a PDB and checks lldb\ndoesn\u0027t crash.\n\nThis fixes crashes in swiftlang.\n\nGitOrigin-RevId: 36e1dfd58c07b213a5d57095247629f63381ed75\n"
    },
    {
      "commit": "79589e702d56118a07a0891aa6cf433d17a7729d",
      "tree": "8a404ccfb52208c5babdf8aba5b49a40ce2cb576",
      "parents": [
        "700d55a324db205871f23e270e1fb900025123e4"
      ],
      "author": {
        "name": "Krzysztof Parzyszek",
        "email": "Krzysztof.Parzyszek@amd.com",
        "time": "Wed Sep 23 11:58:05 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 10:01:41 2026 -0700"
      },
      "message": "[lldb] Add Options to LINK_COMPONENTS (#225684)\n\nThis fixes shared library build of lldb:\n```\n/usr/bin/ld: lib/liblldbPluginPlatformMacOSX.a(PlatformDarwin.cpp.o): undefined reference to symbol \u0027_ZNK4llvm3opt8OptTable9getOptionENS0_12OptSpecifierE\u0027\n/usr/bin/ld: /work/kparzysz/git/llvm.org/b/x86/lib/libLLVMOption.so.24.0git: error adding symbols: DSO missing from command line\nclang++: error: linker command failed with exit code 1 (use -v to see invocation)\n```\n\nAnd several other cases in unittests.\n\nGitOrigin-RevId: 04fe618233c11703862c114caf33b8c29ef27e13\n"
    },
    {
      "commit": "700d55a324db205871f23e270e1fb900025123e4",
      "tree": "6e1db378073b72eabf7d6792fae48141c717fc8a",
      "parents": [
        "44bbef92e4f3504537922f5e32cfb5e66dd1b8d0"
      ],
      "author": {
        "name": "Harald van Dijk",
        "email": "hdijk@accesssoftek.com",
        "time": "Wed Sep 23 17:44:58 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 09:52:27 2026 -0700"
      },
      "message": "[Support] Allow \\n, \\t, \\x in regexes (#223024)\n\n\\n and \\t were already permitted in Regex::sub, but not in the regex\npattern itself. This commit allows them there too.\n\n\\x was not supported at all. This commit allows it both in regex\npatterns and in Regex::sub.\n\nThe goal is to allow \\x to be used in FileCheck patterns and to that\nend, a test is also included that this works in FileCheck as expected.\n\nGitOrigin-RevId: 4f5ae89a4a8c49549cd3884c1f42f3fbba8d8ff3\n"
    },
    {
      "commit": "44bbef92e4f3504537922f5e32cfb5e66dd1b8d0",
      "tree": "1d57d683b0a04cbc4cf92e22a3c378a894a0f016",
      "parents": [
        "f956f88beb9704d31db9099714aeaba7a4c1e305"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Wed Sep 23 14:04:19 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 06:15:22 2026 -0700"
      },
      "message": "[lldb] [Windows] Let LLGS TestClient tolerate async `O` output packets (#225521)\n\nMy PR (swiftlang/llvm-project#14269) has a pre-merge test failure on\nWindows, and that lead me looking at test LLGSTest.cpp deeply\n\n  ```\n  Send Packet: vCont;c\n  Read Packet: O1b5b3f32356c\n  lldb-server exiting...\nLLGSTest.cpp(30): error: Value of:\nllvm::detail::TakeError(Client.ContinueAll())\n  Expected: succeeded\n    Actual: failed  (Unable to parse StopReply: Invalid packet)\n  ```\n\n`TestClient::SendMessage` read exactly one packet and had no handling\nfor `O`\n(inferior stdout) packets, but inferior output arriving before a stop\nreply\nwas parsed as the stop reply itself. `StopReply::create` accepts only\n`T` and\n`W`, so it failed.  The `O1b5b3f32356c` decodes to `ESC [ ? 2 5 l`, the\nsequence that hides the cursor. Windows lldb-server gives the inferior a\nConPTY\ncreated with `PSEUDOCONSOLE_INHERIT_CURSOR`, and ConPTY writes its own\nVT\ninitialization bytes to the output pipe, which reach the client as an\n`O` packet.\n\nThe fix is that `SendMessage` now uses the inherited\n`SendPacketAndReceiveResponseWithOutputSupport`, which loops over\nleading `O`\npackets via `ReadPacketWithOutputSupport` and passes each payload to a\ncallback. `TestClient::Continue` had the same gap in the opposite order:\nafter a\n`W` or `X` reply it read one raw packet and required\n`ErrorDisconnected`, so an `O`\npacket arriving before the socket closed failed the test. It now reads\nthrough\n`ReadPacketWithOutputSupport` as well.\n\nThe fix reverts 5032c6ea0803 (\"[lldb-server] Disable a test on Windows\nuntil it can be\nfixed\"), which disabled `LaunchModePreservesEnvironment` on Windows.\n\n18b211cb1521 (\"Disable stdin/stdout for environment_check inferior\nprocess\")\nworked around the same root cause from a different source, where an\nallocator\nmessage on stderr under sanitizers reached the client the same way. That\ncommit noted the client \"doesn\u0027t handle that unexpected output\"; this\nhandles\nit.\n\nAssisted-by: claude\nGitOrigin-RevId: 29ce634abb29fc59a147e63e72426c343becf4f9\n"
    },
    {
      "commit": "f956f88beb9704d31db9099714aeaba7a4c1e305",
      "tree": "10559e8a46afd4f7f9edfc637dbe4195b5c05999",
      "parents": [
        "5c37b3210ad0981b7f5011d993bd4c308e7ac1e5"
      ],
      "author": {
        "name": "Ebuka Ezike",
        "email": "e_ezike@apple.com",
        "time": "Wed Sep 23 13:43:33 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 05:48:00 2026 -0700"
      },
      "message": "[lldb-dap] Log the error when the adapter fails to write. (#225191)\n\nI noticed this when trying to debug some failures, the Python log are\nmissing responses when compared to the C++ log.\n\nChange the test case suffix `testcase` from `test_dap` to avoid\nconfusion with a session log (`dap{session_number}.log`).\n\nGitOrigin-RevId: 9aace93cb4c5330392082d9b179cd0cc41353bfd\n"
    },
    {
      "commit": "5c37b3210ad0981b7f5011d993bd4c308e7ac1e5",
      "tree": "83b1f162ae6b26b164b8930b1bdb7949d21f99c9",
      "parents": [
        "ddec4fcce8bb1e53d53bd1c9dfa9612eefe3726a"
      ],
      "author": {
        "name": "Ebuka Ezike",
        "email": "e_ezike@apple.com",
        "time": "Wed Sep 23 13:42:26 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 05:47:34 2026 -0700"
      },
      "message": "[lldb] Fix SBValue::Watch on a local variable. (#220292)\n\nSetting a watchpoint on an SBValue variable should not trigger after the\nlife time of the variable. because a new frame can reuse the same\naddress for a different variable.\n\nSet the name of the variable as the watch spec.\n\nGitOrigin-RevId: a68d1990c7a7c5ddfc95d766ce2ce7bbc69e6c32\n"
    },
    {
      "commit": "ddec4fcce8bb1e53d53bd1c9dfa9612eefe3726a",
      "tree": "c6f60b56b3155c02c1fa336727f9665bf5ea600e",
      "parents": [
        "405964278b3029887999e108d7a29aaf037bbea6"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 23 11:53:23 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 23 03:59:06 2026 -0700"
      },
      "message": "[lldb][Windows] Enable the multithreaded and multiple-debuggers API tests (#224305)\n\n`api/multithreaded` and `api/multiple-debuggers` build a C++ driver\nagainst the SB API. Both were skipped on Windows with `\"clang-cl does\nnot support throw or catch (llvm.org/pr24538)\"`, which is no longer what\nstops them. Two things do: the drivers fail to compile because\n`common.h` and `multi-process-driver.cpp` include `\u003cunistd.h\u003e`\nunconditionally, and once they compile they run on a different CRT than\n`liblldb.dll`: the gnu-style clang driver links\n[`libcmt`](https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/MSVC.cpp)\nunless `-fms-runtime-lib\u003d` is passed, so the driver gets the static CRT\nwhile `liblldb.dll` gets the DLL one.\n\nFixes:\n\n- Include `\u003cdirect.h\u003e` and `\u003cio.h\u003e` instead of `\u003cunistd.h\u003e` on Windows,\nand get the working directory with\n[`_getcwd`](https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/getcwd-wgetcwd?view\u003dmsvc-170).\n- `get_working_dir` returns a `std::string` now.\n- `test_stop-hook.cpp` uses `_pipe`/`_fdopen` on Windows, and closes the\npipe streams instead of the descriptors they were opened over, write end\nfirst so the interpreter\u0027s I/O thread sees EOF.\n- Guard the `\u003cunistd.h\u003e` include in `multi-process-driver.cpp`.\n- `buildDriver` passes `-fms-runtime-lib\u003ddll` (`dll_dbg` for a Debug\nbuild) and drops the `libcmt` the driver adds at the link step.\n\n`test_breakpoint_location_callback` stays skipped, for an unrelated\nreason: `BreakpointCreateByName` with `eFunctionNameTypeFull` resolves\nno location in a PDB build, while `eFunctionNameTypeAuto` resolves one.\nTracked in #224303.\n\nrdar://177435499\n\nGitOrigin-RevId: 7a3edbfbcf4acaaabb80e7e5073692690ef920cd\n"
    },
    {
      "commit": "405964278b3029887999e108d7a29aaf037bbea6",
      "tree": "ca4642aa85f3864067f662cce23724d6239ee598",
      "parents": [
        "7a5683bfc25237c6a43f3018d009262eb4567ec0"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Tue Sep 22 18:35:16 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 18:41:49 2026 -0700"
      },
      "message": "[lldb] Consistently use \"null-terminated\" across LLDB (NFC) (#224801)\n\nIt appears that both spellings are correct, but \"null terminator\" is far\nmore common, while \"NUL terminator\" is technically precise regarding the\nASCII character name. Most common in LLDB was \"NULL terminated\" which is\nthe worst of both worlds. This rallies around \"null-terminated\".\n\n- Adjective -\u003e null-terminated\n- Verb -\u003e null-terminate\n- Nouns left unhyphenated but lowercased: null terminator, null\ntermination\n\nGitOrigin-RevId: ffeffce9253b42370029e3a098bea24e5287a830\n"
    },
    {
      "commit": "7a5683bfc25237c6a43f3018d009262eb4567ec0",
      "tree": "811a45809b352687b65cba308a091e563e630137",
      "parents": [
        "2a41a5d829128470aec5b5de87e53f3ce5e3d93e"
      ],
      "author": {
        "name": "Ilia Kuklin",
        "email": "ikuklin@accesssoftek.com",
        "time": "Wed Sep 23 03:58:43 2026 +0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 16:03:34 2026 -0700"
      },
      "message": "[lldb] Add error logging to DIL (#224763)\n\nThis patch also adds a new `EvaluateTree` interface for the Interpreter,\nsince putting the logging into the existing `Evaluate` would output the\nmessage every time it\u0027s called internally.\n\nGitOrigin-RevId: 680c555e5841a7afbb03b0fa2665e92dacbca380\n"
    },
    {
      "commit": "2a41a5d829128470aec5b5de87e53f3ce5e3d93e",
      "tree": "90c6f900dd296306674e99b222f77d10cffa5047",
      "parents": [
        "7a3e3a6f4eb16374bc85655c05b3f84643506dd8"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Tue Sep 22 15:25:02 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 15:33:13 2026 -0700"
      },
      "message": "[lldb] Fix heap-use-after-free in scripted process memory reads (#225472)\n\nThe ASan bots hit a use-after-free unwinding the scripted process in\nTestScriptedProcess:\n\n```\n  READ of size 512\n    #1 DataExtractor::CopyByteOrderedData() DataExtractor.cpp:660\n    #2 ScriptedProcess::DoReadMemory() ScriptedProcess.cpp:282\n    #3 Process::ReadMemoryFromInferior() Process.cpp:2453\n    #4 MemoryCache::Read() Memory.cpp:323\n ```\n\nAddressableBitsScriptedProcess.read_memory_at_address(), added in 851eb5a97ba6, filled its SBData with SetData(). That overload is non-owning: it builds a DataExtractor that aliases the caller\u0027s buffer. The buffer it was handed is a `bytes(size)` temporary, which Python frees as soon as the call returns, so DoReadMemory copies out of a dead allocation. The 512 is the default\ntarget.memory-cache-line-size, not the register width the unwinder asked for.\n\nUse SetDataWithOwnership() instead, as every other scripted process script already does.\n\nSigned-off-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: 8a85fe173645e065bddf16b885ddfd85cbc28883\n"
    },
    {
      "commit": "7a3e3a6f4eb16374bc85655c05b3f84643506dd8",
      "tree": "04f5ca66c761bf2f2b17d1c6368b2a09c88f087c",
      "parents": [
        "e49af6a9ce3cb978a5dc35e9bf95cd94ad1cff5a"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Tue Sep 22 14:29:35 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 14:38:44 2026 -0700"
      },
      "message": "[lldb/Interpreter] Report scripted hook failures to the user (#225292)\n\nA scripted hook whose Python implementation failed reported nothing. The\nerror exists: `Dispatch` has returned it since #224988, but none of the\nthree call sites put it anywhere the user could see it:\n\n- `Target::StopHookScripted::HandleStop` logged to LLDBLog::Target,\nwhich is off unless you already know to `log enable lldb target`.\n- `Target::HookScripted::HandleStop` consumed the `Expected` with no log\nat all.\n- `HandleModuleLoaded`/`HandleModuleUnloaded` had no error channel, so\nthe Python interface could only log and carry on.\n\nThis gives the two module callbacks an `llvm::Error` return, and route\nall three through `ReportScriptedHookError`, which formats via a\n`CommandReturnObject` whose immediate streams both point at the hook\u0027s\noutput stream, the same thing `StopHookCommandLine::HandleStop` already\ndoes for a failing command. That gets the standard `error: ` prefix and\nkeeps the message interleaved with whatever the hook printed.\n\nA stop hook whose `handle_stop` raises `AttributeError` used to print\nonly:\n\n  - Hook 1 (a_out.CoreFileStopHook)\n\nand now prints:\n\n- Hook 1 (a_out.CoreFileStopHook) error: stop hook 1 failed: python\nexception in a_out.CoreFileStopHook method \u0027handle_stop\u0027: Traceback\n(most recent call last): File \".../a_out.py\", line 25, in handle_stop\nprint(f\"error {self.process}\") AttributeError: \u0027CoreFileStopHook\u0027 object\nhas no attribute \u0027process\u0027\n\nrdar://183458400\n\nSigned-off-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: 2cf68b2cc466710badbe560ad6081f71c72ed331\n"
    },
    {
      "commit": "e49af6a9ce3cb978a5dc35e9bf95cd94ad1cff5a",
      "tree": "235ba7e8f26d442a41fcbf60cbc00dc98972a131",
      "parents": [
        "d8272b2a150fd686905980098bc8614f51fdecb7"
      ],
      "author": {
        "name": "Nathan Fusselman",
        "email": "nathanfusselman@icloud.com",
        "time": "Tue Sep 22 10:54:23 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 10:58:04 2026 -0700"
      },
      "message": "[lldb-dap] Fix global-scope evaluate always routing to command interpreter (#225243)\n\nDetectReplMode returned Command unconditionally when there was no frame,\nsince it couldn\u0027t check FindVariable without one. A frameless evaluate\n(no frameId, e.g. `(int)getpid()`) was always treated as an unknown\ncommand instead of an expression.\n\nFall back to SBTarget::FindFirstGlobalVariable when there\u0027s no frame:\nDAP::target is valid independent of frame, so globals/statics can still\nbe checked without one.\n\nrdar://187884135\n\nGitOrigin-RevId: 2643205b93aa72864b2ac0cd0ae8047bc8048baf\n"
    },
    {
      "commit": "d8272b2a150fd686905980098bc8614f51fdecb7",
      "tree": "b6d03fd40a44b95f2d6960c85606772b58f84729",
      "parents": [
        "f58acf9300b208b12e21a385b1e76eaef756ac93"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Tue Sep 22 16:02:12 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 08:08:56 2026 -0700"
      },
      "message": "[lldb][NFC] Move XcodeSDK\u0027s sysroot into a separate XcodeSDKAndSysroot class (#224361)\n\n`XcodeSDK` carried two unrelated things: the SDK identity parsed out of\nan SDK directory name (`\"MacOSX14.0.sdk\"`), and the sysroot the compiler\nrecorded in `DW_AT_LLVM_sysroot`. The second is an absolute path on the\nbuild machine and is only there when the SDK was read out of debug info.\n\nCallers have no way to tell the two states apart.\n\nThis patch splits out `XcodeSDKAndSysroot`, which groups an `XcodeSDK`\nwith its sysroot. `XcodeSDK` keeps only the parsed SDK name, so\n`XcodeSDK::Merge` no longer touches a sysroot.\n`XcodeSDKAndSysroot::Merge` does that instead.\n\nIt follows the rules below:\n\n- When the other SDK wins the merge, its sysroot comes with it.\n- When merging only adds the `Internal` suffix to our own SDK name, the\nsysroot is renamed alongside it, unless it does not name an SDK\ndirectory.\n\nrdar://171905747\n\nGitOrigin-RevId: 6c98a370c9b8e16618394b0862fff6ee66a555bb\n"
    },
    {
      "commit": "f58acf9300b208b12e21a385b1e76eaef756ac93",
      "tree": "4976d7d80738980f8aa19781a32fc734ffdf8925",
      "parents": [
        "305a3a34547bedeafea4cbac0c9bb1ef7c2ecf92"
      ],
      "author": {
        "name": "Ebuka Ezike",
        "email": "e_ezike@apple.com",
        "time": "Tue Sep 22 14:48:48 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 06:59:58 2026 -0700"
      },
      "message": "[lldb-dap][NFC] Simplify using var_ref_t directly. (#225187)\n\nMake var_ref_t printable, update functions that requires var_ref_t to\nuse var_ref_t instead of integers.\n\nGitOrigin-RevId: 58dd2be9a4b535b5467b432ebd6b77e03a93b5de\n"
    },
    {
      "commit": "305a3a34547bedeafea4cbac0c9bb1ef7c2ecf92",
      "tree": "c21120386719602f4b3ddc96ee44db80f000d762",
      "parents": [
        "42f3462b70f6956d19f721f5c4a7c84cb3a1bcb1"
      ],
      "author": {
        "name": "Ebuka Ezike",
        "email": "e_ezike@apple.com",
        "time": "Tue Sep 22 11:52:10 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 22 03:59:04 2026 -0700"
      },
      "message": "[lldb-dap] Refactor handling progress events. (#224957)\n\nlldb-dap now only uses one thread to receive and throttle received\nprogress events.\nFor every progress with a progressId, we delay reporting the progress\nfor 1000ms until we have recieved a new progress and only send an update\nif the progress has a new version after 250ms.\n\nThis means for every progress integration test we do nothing for at\nleast 1250ms. The previous `TestDAP_progress` runs for at least 8s\nregardless of how fast the computer is.\n\nMoved most of the test to unittest where we can simulate progress delays\nand time passing. We now have only one `TestDAP_progress` test to verify\nthe client receives progress Events.\n\nWhen the ProgressEventThread reports a new progressEvent, the reporter\nthen.\n- Create or update the `PendingProgress` with that progressId.\n- Determines the action to take based on the ProgressState,\nk_start_delay and k_update_interval.\n- Sends the apropriate Event based on the action calculated.\n\nMigrate the API test to the new infrastructure.\nAdd unit tests for the ProgressEventReporter and protocol progressXXXX\nPOD.\n\nGitOrigin-RevId: a22714d1867d7941681c129ea1a37c85541a1ad4\n"
    },
    {
      "commit": "42f3462b70f6956d19f721f5c4a7c84cb3a1bcb1",
      "tree": "ff9a3fbbc9bdb00d18fc3c60f5461c58201751b0",
      "parents": [
        "8dd9eb3b946fea19e32f8160fda1e8a6f378cc85"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Mon Sep 21 20:52:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 20:58:13 2026 -0700"
      },
      "message": "[Option] Remove OPTTABLE_STR_TABLE_CODE (#224822)\n\nIts two users read OptionStrTable to spell an option. The unittest now\ncompares option IDs. lldb prepends \u0027-\u0027 to the name it reads, which has\nbeen the prefixed name since 501f92d34382 (2023), so it passes\n\"--mmacos-version-min\u003d\u003cver\u003e\", which the driver rejects and drops; spell\nit with the driver option table instead.\n\nAided by Opus 5\n\nGitOrigin-RevId: ce06ac932eca6a403fa2f1f84fc5724fd30dc562\n"
    },
    {
      "commit": "8dd9eb3b946fea19e32f8160fda1e8a6f378cc85",
      "tree": "90ff67ec9bea0b504ae9370542ab6c5c4405deaa",
      "parents": [
        "782e8702bae08b420460da5243f23c5c8259c563"
      ],
      "author": {
        "name": "Lang Hames",
        "email": "lhames@gmail.com",
        "time": "Tue Sep 22 11:52:57 2026 +1000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 19:03:38 2026 -0700"
      },
      "message": "[lldb] Refactor PrepareToExecuteJITExpression (#224888)\n\nRefactor the body of PrepareToExecuteJITExpression into two methods:\nAllocateInterpreterStackFrame and AllocateAndMaterializeStruct.\n\nThis change is purely mechanical, but improves readability and sets up a\nfuture refactor: AllocateAndMaterializeStruct is generic expression\nsetup and should remain where it is, but AllocateInterpreterStackFrame\nis only needed on the interpreter path and can be sunk into that path in\na future commit.\n\n---------\n\nCo-authored-by: Jonas Devlieghere \u003cjonas@devlieghere.com\u003e\nGitOrigin-RevId: 4c36312084fea422bec96f1bdb599b38b144289d\n"
    },
    {
      "commit": "782e8702bae08b420460da5243f23c5c8259c563",
      "tree": "6a4f9e7370b4b6d41f0b6fdb76573e89fc3610b9",
      "parents": [
        "7b86a6bca1803ea34665d6a4edf7d22a9a6f72e2"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Mon Sep 21 18:10:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 18:16:28 2026 -0700"
      },
      "message": "[lldb] Make ScriptedPythonInterface::Dispatch return llvm::Expected\u003cT\u003e (#224988)\n\nUntil now, `Dispatch` returned the extracted value and reported failure\nthrough a `Status \u0026` out-parameter, which leaves the two outcomes\nindistinguishable at the value level: a Python method that returns\n`None` and one that raises both hand back a default-constructed `T`.\nOnly `error` told them apart, and because the signature advertises the\nvalue, call sites reached for the value and dropped the error.\n\nThree real instances of that:\n\n- `ScriptedHookPythonInterface::HandleStop` returned `true` whenever the\nobject was null, discarding the backtrace of a raising `handle_stop`\n(fixed separately).\n- `GetStatusFromMethod` discarded `Dispatch\u003cStatus\u003e`\u0027s return value, so\nthe `SBError` returned by `ScriptedProcess.launch/attach/resume` and the\nthree `ScriptedPlatform` entry points was ignored entirely: a `launch()`\nreturning `SBError(\"no such file\")` reported success.\n- `GetThreadPlanMetadataForStepType` string-matched the exception text\nto guess whether the method existed, with a FIXME asking for exactly\nthis.\n\nThis switches `Dispatch`, `CallStaticMethod` and\n`ExtractValueFromPythonObject` to `llvm::Expected\u003cT\u003e` and drop the\nout-parameter. `CheckStructuredDataObject` becomes dead and is removed.\n\nAn absent method now yields `UnimplementedError`. Three helpers let each\ncall site state its intent: `DispatchToOptional` for optional methods a\nscript may legitimately omit, which reports an unimplemented method as\n`std::nullopt` and lets every other failure propagate; `LogAndDefault`\nfor entry points whose return type cannot express failure, which logs\nthe error and falls back to a default-constructed value instead of\ndiscarding it; and `LogAndError`, which builds and logs the errors\n`Dispatch` returns itself.\n\nWidening the `LogAndDefault` entry points to `Expected` touches every\ncaller in ScriptedThread/ScriptedProcess/ScriptedFrame and is left as\nfollow-up.\n\nThis patch stops at the interface layer deliberately: it is about\nsurfacing the error and the Python exception out of `Dispatch` and into\nthe scripted interface classes. That has to happen to all of them at\nonce, because they share the same dispatch entry point, which is why\nthis touches every interface class together. Carrying those exceptions\nthe rest of the way to the user is per-extension work, and lands as a\nfollow-up PR for each extension.\n\nSigned-off-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: d28da7e5238e8bd81c609ef19170dc6b73ee48ac\n"
    },
    {
      "commit": "7b86a6bca1803ea34665d6a4edf7d22a9a6f72e2",
      "tree": "a72095282e3618b31fffcebb2ddb217c5c6db5f0",
      "parents": [
        "ae69765f36f50fe83cfdf3a623f0b5e147fecc81"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Mon Sep 21 11:16:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 11:22:04 2026 -0700"
      },
      "message": "[lldb] Bounds check minidump location descriptors (#223911)\n\nMinidumpParser::GetModuleUUID sliced the file with the RVA and DataSize\ntaken straight from a module\u0027s CvRecord. ArrayRef::slice asserts, but a\nbuild without assertions still reads out of bounds.\n\nRoute both through MinidumpFile::getRawData, which range checks in 64\nbits, and log the error rather than returning a slice that looks valid.\n\nrdar://186889966\nrdar://186890172\n\nGitOrigin-RevId: 4648d33f8e759d7557fb5bb8a0978023fa67306b\n"
    },
    {
      "commit": "ae69765f36f50fe83cfdf3a623f0b5e147fecc81",
      "tree": "e5ea0e2dff71695c11d19b17b58ed7a5c0513d33",
      "parents": [
        "98e5bf2fe18302f49fb497452784b8119fc13308"
      ],
      "author": {
        "name": "Janet Yang",
        "email": "qxy11@meta.com",
        "time": "Mon Sep 21 10:09:49 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 10:18:53 2026 -0700"
      },
      "message": "[Support][lldb] Port xz (lzma) decompression from LLDB into LLVM (#220092)\n\n### Summary\nLLDB\u0027s `lldb_private::lzma` is currently the only xz decompressor in the\ntree. It reads the ELF `.gnu_debugdata` (MiniDebugInfo) section, whose\nembedded symbol table can sometimes be the only source of function names\nin a stripped binary. Move it to `\u0027llvm::compression::xz` so that other\ntools like llvm-gsymutil can use it.\n- Only decompression is implemented and it\u0027s kept out of\n`compression::Format` since it\u0027s not written by LLVM and is produced by\nan extra packaging step. It also doesn\u0027t model the schemes usable for\nSHF_COMPRESSED sections, which are self-describing via some type of\n`ELFCOMPRESS_*` constant, which doesn\u0027t exist for XZ.\n- Reformats the ported code to LLVM standards, but avoids other\nfunctional changes unless a comment was specifically made on the PR to\naddress it. There is a latent bug in the ported code where\n`lzma_index_buffer_decode()` was passed a pointer to the stream index\nbut the size of the whole stream, which could\u0027ve caused it to\ntechnically read past the end of the buffer. Valid streams aren\u0027t\ncurrently affected since the index is self-delimiting and CRC-checked,\nso this will just be addressed in a following PR.\n- `LLDB_ENABLE_LZMA` is replaced by `LLVM_ENABLE_LZMA`, and is default\nto ON globally. Cases where LLDB_ENABLE_LZMA and LLVM_ENABLE_LZMA are in\ndisagreement will fail, and otherwise, uses of LLDB_ENABLE_LZMA will\nresult in deprecation warnings.\n- In the Bazel overlay, @llvm-project//lldb:lzma\u003dsystem flag can no\nlonger work for the same reason, so it is replaced by\n--@llvm-project//third-party:llvm_enable_lzma\u003dtrue via a new\n//third-party:lzma target alongside the existing zlib and zstd wrappers.\n\n### Testing\nAdded a unit test testing the decompression\nExisting LLDB unit tests of minidebuginfo still passing\nTested with `LLVM_ENABLE_LZMA` both on and off, check-llvm, and\ncheck-lldb-shell are clean.\n\nGitOrigin-RevId: 854a9b8d7036ef52490edfb644f30ba043a0f238\n"
    },
    {
      "commit": "98e5bf2fe18302f49fb497452784b8119fc13308",
      "tree": "b2d65231090acc5e004e176bf05cd23e33a2ee03",
      "parents": [
        "0df7af71376914bdeba6690ad56fe575049d5d26"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Mon Sep 21 09:28:13 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Sep 21 01:37:35 2026 -0700"
      },
      "message": "[lldb] [NFC] Fix unused variable warning in MemoryCache::InsertPartialLine (#224973)\n\nA Release build (assertions disabled) warns:\n\n```\nlldb/source/Target/Memory.cpp:144:18: warning: unused variable \u0027line_size\u0027 [-Wunused-variable]\n  144 |   const uint32_t line_size \u003d m_L2_cache.GetLineByteSize();\n      |                  ^~~~~~~~~\n```\n\n`line_size` was read only inside the `assert` that checks a partial-line\ninsert does not cross a cache line boundary. `assert` expands to nothing\nwhen `NDEBUG` is defined, so the variable becomes unused in that\nconfiguration.\n\n`llvm/docs/CodingStandards.md` covers this shape directly:\n```\nIn the first case, the call to `V.size()` is only useful for the assert,\nand we don\u0027t want it executed when assertions are disabled.  Code like\nthis should move the call into the assert itself.\n```\nso call `GetLineByteSize()` in the assert and drop the local.\n\nVerified by building `lldb/source/Target/Memory.cpp` with\n`-DCMAKE_BUILD_TYPE\u003dRelease -DLLVM_ENABLE_ASSERTIONS\u003dOFF`: the warning\nabove reproduces before this change and is gone after it, with a clean\nrebuild of the same object file.\n\nGitOrigin-RevId: 3783db502a743ff25462590010c4d91d17c918b3\n"
    },
    {
      "commit": "0df7af71376914bdeba6690ad56fe575049d5d26",
      "tree": "aa9d372d79c4606c7beb3ca4e20c738526125431",
      "parents": [
        "5b9d51a7244ae235d4c42a3ea3afe9a412057ed1"
      ],
      "author": {
        "name": "Ebuka Ezike",
        "email": "e_ezike@apple.com",
        "time": "Sun Sep 20 22:28:37 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Sep 20 14:33:03 2026 -0700"
      },
      "message": "[lldb] Implement the `__repr__` method for SBStringList. (#224134)\n\nIt was annoying to working with `SBStringList` from the lldb python\nrepl, because printing it out will produce something like.\n`\u003clldb.SBStringList; proxy of \u003cSwig Object of type \u0027lldb::SBStringList\n*\u0027 at 0x10556a7b0\u003e \u003e`.\n\nThis also implicitly implements `str(SBStringList)`.\nExtend the `__getitem__` behaviour to cover integer slices. Add test\ncases.\n\nGitOrigin-RevId: 480adef267b7e225ea52b11d0e1b8516657309ff\n"
    },
    {
      "commit": "5b9d51a7244ae235d4c42a3ea3afe9a412057ed1",
      "tree": "8e53b572c73552a1c76aacf7801eb7042a085ee0",
      "parents": [
        "7ff1632fc15a5430f78102ee5a72ce8ae326bea6"
      ],
      "author": {
        "name": "Ebuka Ezike",
        "email": "e_ezike@apple.com",
        "time": "Sun Sep 20 20:40:40 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Sep 20 12:46:31 2026 -0700"
      },
      "message": "[lldb][SBAPI] Fix crash when calling SBProgress constructor. (#224176)\n\nFix crash when calling SBProgress constructor with nullptr.\n\nGitOrigin-RevId: 4ffcaf61b123ba27c71daf8da7f8eb03ffdd748b\n"
    },
    {
      "commit": "7ff1632fc15a5430f78102ee5a72ce8ae326bea6",
      "tree": "c09cec1453c59db842b125082384f837a477ebd1",
      "parents": [
        "853efd6d10a64c7b36c1acf8b5eb5b558de0e4ab"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Sat Sep 19 20:11:05 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Sep 19 20:17:16 2026 -0700"
      },
      "message": "[lldb/test] Skip test_scripted_process_addressable_bits on Windows (#224878)\n\nThis test is the first one in its directory to reach `self.build()` on\nWindows, where the Makefile only knows how to build a dylib, so linking\nthe test binary fails on an undefined `baz` symbol.\n\nSigned-off-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: 761561a0b41fb35e6d52b3498e8ca20073753b18\n"
    },
    {
      "commit": "853efd6d10a64c7b36c1acf8b5eb5b558de0e4ab",
      "tree": "ad66d75ae7a7d2b57cabc8e8472509580d2f051a",
      "parents": [
        "0ac726610d8b6bf4cb293b9647eb0704dcfb00a7"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Fri Sep 18 23:33:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 23:37:42 2026 -0700"
      },
      "message": "[Option] Replace the OptionTables object with a function. NFC (#224805)\n\nThe generated `Tables` holds seven addresses, so needs dynamic\nrelocations in PIE and shared library builds:\n\n```\nstatic constexpr llvm::opt::OptTable::Tables OptionTables \u003d {\n    OptionStrTable, OptionPrefixesTable, OptionPrefixesUnion, ...};\n...\n  FooOptTable() : OptTable(OptionTables) {}\n```\n\nEmit a function instead. The caller builds the aggregate on the stack\nfrom PC-relative addresses, which the linker resolves:\n\n```\nstatic constexpr llvm::opt::OptTable::Tables optionTables() {\n  return {OptionStrTable, OptionPrefixesTable, OptionInfoTable, ...};\n}\n...\n  FooOptTable() : OptTable(optionTables()) {}\n```\n\nDerive the prefix union from the prefix table in the constructor and\ndrop the emitted OptionPrefixesUnion.\n\nAided by Opus 5\n\nGitOrigin-RevId: 3efbad6ac0ed21cff03201f50bd37f15060d36e1\n"
    },
    {
      "commit": "0ac726610d8b6bf4cb293b9647eb0704dcfb00a7",
      "tree": "9b61b24e27ea4263e93f3f0e2b4f8962a45cec8b",
      "parents": [
        "c077fa40acf8d7c06cdb20b935e826d15e51a9a2"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Fri Sep 18 22:09:39 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 22:12:50 2026 -0700"
      },
      "message": "[lldb/test] Register the addressable_bits_scripted_process module with the script interpreter (#224803)\n\n`test_scripted_process_addressable_bits` imported\n`addressable_bits_scripted_process` into the test process, which makes\nthe module\u0027s constants available to the test but tells lldb\u0027s own script\ninterpreter nothing about it, so\n`SBLaunchInfo::SetScriptedProcessClassName()` had nothing to resolve:\n\n```\n  error: failed to create ScriptedProcess: failed to create script object:\n  Could not find script class:\n  addressable_bits_scripted_process.AddressableBitsScriptedProcess\n```\n\nImport the file with `command script import` the way the other scripted\nprocess tests in this file do.\n\nGitOrigin-RevId: 18f24365f1e6ffde585e35c110d2039c082b2091\n"
    },
    {
      "commit": "c077fa40acf8d7c06cdb20b935e826d15e51a9a2",
      "tree": "91cdde7946594b5f3ce141ae33cb6442a38f1eef",
      "parents": [
        "5d72a02513eeb0cfa3cf1343e9bdc7fe9199cb12"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Fri Sep 18 21:27:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 21:31:57 2026 -0700"
      },
      "message": "[lldb] Bound DataExtractor::PeekCStr to the data it reads from (#224452)\n\nPeekCStr only validated the first byte without checking for a terminator.\nEvery caller then treated the result as a C string, so an unterminated\nstring table let strlen run past the mapping, causing a crash or\nsecurity bug.\n\nReturn an optional StringRef, produced only when the terminator lies\nwithin the data. The length comes along with it, so callers no longer\nrescan, and an absent string stays distinct from an empty one.\n\nValueObject was the only caller that wanted an unterminated buffer. It\nscans fixed size chunks of inferior memory, so it now asks for bytes with\nPeekData and bounds its own scan.\n\nrdar://186891223\n\nGitOrigin-RevId: c38a7054a1d889d428a24481f699927a8707b28e\n"
    },
    {
      "commit": "5d72a02513eeb0cfa3cf1343e9bdc7fe9199cb12",
      "tree": "7780dd8ce31aa3660970a3d81c743d98d364e7cd",
      "parents": [
        "943fdd7544fe28a94fa33d89cb54b660f7637251"
      ],
      "author": {
        "name": "Minsoo Choo",
        "email": "minsoo@minsoo.io",
        "time": "Sat Sep 19 00:23:12 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 21:26:57 2026 -0700"
      },
      "message": "Revert \"[lldb][FreeBSDKernel] Support cross-architecture FreeBSD kernel cores\" (#224799)\n\nReverts llvm/llvm-project#223593\n\nMerged by mistake.\n\nGitOrigin-RevId: 0da016867d1fd3d7938895ec36a9775fe26e1919\n"
    },
    {
      "commit": "943fdd7544fe28a94fa33d89cb54b660f7637251",
      "tree": "923099f5567337f5e74c5f901335100936c2a67a",
      "parents": [
        "9ff5e2ee664f2507e643b9d231e6f32550edfb10"
      ],
      "author": {
        "name": "Minsoo Choo",
        "email": "minsoo@minsoo.io",
        "time": "Sat Sep 19 00:19:33 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 21:23:55 2026 -0700"
      },
      "message": "[lldb][FreeBSDKernel] Support cross-architecture FreeBSD kernel cores (#223593)\n\nFreeBSD\u0027s kvm_open(3) man page states that a valid resolver is required\nto debug non-native kernel images as libkvm needs to map symbol names to\nkernel virtual addresses. Since ProcessFreeBSDKernelCore aims to debug\nkernel image and core dump from any architectures, pass a valid resolver\nto kvm_open2().\n\nAssisted-by: GPT\nGitOrigin-RevId: 3088d0aace62a33925ade51e238b9a1ae7ff30c0\n"
    },
    {
      "commit": "9ff5e2ee664f2507e643b9d231e6f32550edfb10",
      "tree": "7780dd8ce31aa3660970a3d81c743d98d364e7cd",
      "parents": [
        "311aaabbee91a78b71b05aaee1ca9c8fda04398b"
      ],
      "author": {
        "name": "Minsoo Choo",
        "email": "minsoochoo0122@proton.me",
        "time": "Sat Sep 19 00:19:15 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 21:23:37 2026 -0700"
      },
      "message": "[lldb][FreeBSDKernel] Avoid null dereference probing FreeBSD kernels (#223590)\n\nCheckForKernelImageAtAddress() accepts an optional read_error pointer,\nbut dereferenced it unconditionally in many code paths. If read_error is\nnull, point read_error to a dummy local variable to prevent null\ndereference.\n\nFixes: b3cc4804d45d6b612ac9b3cc47ebbb0da44ebc60\nGitOrigin-RevId: 041328e3314e5f0aea3d88f6bd8257ecccd89984\n"
    },
    {
      "commit": "311aaabbee91a78b71b05aaee1ca9c8fda04398b",
      "tree": "3d4f3c8f1d149216e2e6183dec6b28e699f5f4a6",
      "parents": [
        "52409d8fd328eded482829ca175b4de24eb978a8"
      ],
      "author": {
        "name": "Minsoo Choo",
        "email": "minsoochoo0122@proton.me",
        "time": "Sat Sep 19 00:18:57 2026 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 21:23:14 2026 -0700"
      },
      "message": "[lldb][FreeBSDKernel] Load unrelocated FreeBSD kernel sections (#223589)\n\nEven though displacement is zero, we need to mark the module as loaded.\n\nFixes: 62d06083ef186abe610de4742c62c84c2f97fcd0\nGitOrigin-RevId: 7192e07bea4fbad5e83b1e952072b0c4ddde4d3a\n"
    },
    {
      "commit": "52409d8fd328eded482829ca175b4de24eb978a8",
      "tree": "9b6f751b9ea1691f32027e57d6f2ecb2ba3aeab0",
      "parents": [
        "8aaaf8d2d125d0c20a4444d4023a2ee188aee564"
      ],
      "author": {
        "name": "Med Ismail Bennani",
        "email": "ismail@bennani.ma",
        "time": "Fri Sep 18 19:50:03 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 19:57:28 2026 -0700"
      },
      "message": "[lldb/Interpreter] Let a Scripted Process report its addressable bits (#224701)\n\nGitOrigin-RevId: 851eb5a97ba67b4e8ebec39fb821c144db67a10a\n"
    },
    {
      "commit": "8aaaf8d2d125d0c20a4444d4023a2ee188aee564",
      "tree": "d10077696c4d6eba207217b593d2135158d619a8",
      "parents": [
        "ee5066d99ab6dfd3f3b85b288f84f2521d7ca143"
      ],
      "author": {
        "name": "Fangrui Song",
        "email": "i@maskray.me",
        "time": "Fri Sep 18 18:38:52 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 18:44:17 2026 -0700"
      },
      "message": "[Option] Emit the Info table from TableGen. NFC (#224508)\n\nEach tool expands OPTION into an Info array and passes it with up to\nfive side tables to GenericOptTable or PrecomputedOptTable, so a new\nside table touches every tool.\n\nEmit the Info table from TableGen with numeric group and alias IDs and\nbundle all tables into an OptTable::Tables aggregate under one\nOPTTABLE_CODE block, so a tool just constructs OptTable(OptionTables).\nEvery table now uses the precomputed prefix union, which removes\nGenericOptTable and PrecomputedOptTable.\n\nAided by Opus 5\n\nGitOrigin-RevId: 40a6a441e7a945ca964619cfa2c328120cb9dae5\n"
    },
    {
      "commit": "ee5066d99ab6dfd3f3b85b288f84f2521d7ca143",
      "tree": "d5d2c5ce596d0106f0338e002123b3c0b5099061",
      "parents": [
        "bf74554184ee88655021d8e6535d8a8455b3e59b"
      ],
      "author": {
        "name": "Lang Hames",
        "email": "lhames@gmail.com",
        "time": "Sat Sep 19 09:30:05 2026 +1000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 16:34:42 2026 -0700"
      },
      "message": "[lldb] Get IRExecutionUnit mangling-mode from llvm::Module. (#224595)\n\nGet the mangling mode (IRExecutionUnit::m_strip_underscore) from the\nllvm::Module at IRExecutionUnit construction time, rather than getting\nit from the llvm::ExecutionEngine in GetRunnableInfo.\n\nThis is a step towards decoupling IRExecutionUnit from\nllvm::ExecutionEngine / MCJIT.\nGitOrigin-RevId: 2dbfa63d18daa18e4c9a633ec812d03b6587e4fb\n"
    },
    {
      "commit": "bf74554184ee88655021d8e6535d8a8455b3e59b",
      "tree": "fcd8f88f6e39b10e52b2325066a1e9ab7e8d345f",
      "parents": [
        "51736405042c761fd244851312394a90416faf87"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Fri Sep 18 15:22:14 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:31:29 2026 -0700"
      },
      "message": "[LLDB] Convert the remaining test launches to lldbutil (NFC) (#224416)\n\nReplace the CreateTarget + breakpoint + LaunchSimple + stop-assert\nboilerplate with the matching lldbutil.run_to_*_breakpoint helper.\n\nBesides being shorter, the helpers check that the breakpoint resolved to\nat least one location and that the process stopped at that specific\nbreakpoint, which most of the original code did not do.\n\nIt also improves and unifies the error reporting when the launch fails.\n\nNote for reviewers: These did not follow the common pattern and had to\nbe converted by hand, so they are worth a closer look than the earlier\nbatches:\n\n- Five of them called get_threads_stopped_at_breakpoint() and indexed\nthe resulting list. The helper already returns the single stopped\nthread, so the list, its length assertions and the [0] subscript all\ncollapse into it.\n- TestSigtrampUnwind checked the stop state with an if/fail block rather\nthan an assertion.\n- TestAddDsymDownload built its target from self.exe, which is just\ngetBuildArtifact(\"a.out\"), so it needs no exe_name argument.\n- TestThreadAPI looks up the thread inside a while loop, so only the\ntarget creation and launch could be folded into the helper.\n\nAssisted-by: Claude\nGitOrigin-RevId: d93df21ccc49e4796126614cea7097d4ee433a41\n"
    },
    {
      "commit": "51736405042c761fd244851312394a90416faf87",
      "tree": "f1f9a26c624edd5d27b6ab40dc6e3ceff5e9e79b",
      "parents": [
        "d6a24de6bf4725f2982142989c4033639a31aceb"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Fri Sep 18 15:05:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:30:49 2026 -0700"
      },
      "message": "[LLDB] Convert multi-threaded test launches to lldbutil (NFC) (#224415)\n\nReplace the CreateTarget + breakpoint + LaunchSimple + stop-assert\nboilerplate with the matching lldbutil.run_to_*_breakpoint helper at 7\ncall sites.\n\nBesides being shorter, the helpers check that the breakpoint resolved to\nat least one location and that the process stopped at that specific\nbreakpoint, which most of the original code did not do.\n\nIt also improves and unifies the error reporting when the launch fails.\n\nNote for reviewers: These inferiors are multi-threaded and the original\ncode used get_stopped_thread(), which tolerates several threads stopping\nat once. The helpers require exactly one by default, so every call here\npasses only_one_thread\u003dFalse to preserve the previous behavior. Without\nit TestLLDBIterator fails with \"Expected 1 thread to stop at breakpoint,\n3 did\" - but only under load, which makes this easy to miss when running\na single test.\n\nAssisted-by: Claude\nGitOrigin-RevId: 8282b18b2e998d215698c327184d87c63dc0c4e6\n"
    },
    {
      "commit": "d6a24de6bf4725f2982142989c4033639a31aceb",
      "tree": "69b4f9076718575c5a2b60ae44e4eaffd3c7aad9",
      "parents": [
        "f840ebfcbfc440912b31f9f54eb449a423cfb0e2"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Fri Sep 18 15:04:48 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:08:11 2026 -0700"
      },
      "message": "[LLDB] Convert test launches with extra arguments to lldbutil (NFC) (#224412)\n\nReplace the CreateTarget + breakpoint + LaunchSimple + stop-assert\nboilerplate with the matching lldbutil.run_to_*_breakpoint helper at 19\ncall sites.\n\nBesides being shorter, the helpers check that the breakpoint resolved to\nat least one location and that the process stopped at that specific\nbreakpoint, which most of the original code did not do.\n\nIt also improves and unifies the error reporting when the launch fails.\n\nNote for reviewers: In this patch, all invocations passed additional\narguments that needed to be carried over to the lldbutil replacement.\n\nAssisted-by: Claude\nGitOrigin-RevId: 666edf2186f29fae04fd38cd0f93608cd0ec06e0\n"
    },
    {
      "commit": "f840ebfcbfc440912b31f9f54eb449a423cfb0e2",
      "tree": "0fb932dc4e1b1b4c62684de00eab785a42b2607f",
      "parents": [
        "c35dc1c649ad7e2c7ccb95e45a5e2682f45bdfe6"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Fri Sep 18 14:59:22 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:01:38 2026 -0700"
      },
      "message": "[LLDB] Convert straightforward test launches to lldbutil (NFC) (#224404)\n\nReplace the CreateTarget + breakpoint + LaunchSimple + stop-assert\nboilerplate with the matching lldbutil.run_to_*_breakpoint helper at 35\ncall sites where the translation needs no extra arguments.\n\nBesides being shorter, the helpers check that the breakpoint resolved to\nat least one location and that the process stopped at that specific\nbreakpoint, which most of the original code did not do.\n\nIt also improves und unifies the error reporting when the launch fails.\n\nAssisted-by: Claude\nGitOrigin-RevId: 53ff33af0943139d83938c582c8c154665a40716\n"
    },
    {
      "commit": "c35dc1c649ad7e2c7ccb95e45a5e2682f45bdfe6",
      "tree": "1e70e30f9f8e90630bfc01c407913f8582a8e9ad",
      "parents": [
        "be5077583d6f8113c4ccec53cb98a802f0a33da2"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Fri Sep 18 14:55:32 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 15:00:03 2026 -0700"
      },
      "message": "[lldb] Skip TestFrameVarDILExprComparison with DWARF \u003c 4 (#224755)\n\nThe test relies on scoped enum types, which need DW_AT_enum_class and\nthus DWARF 4 or newer.\n\nGitOrigin-RevId: e8cd5ce3183244e9f8d95e3211d106b056c89c75\n"
    },
    {
      "commit": "be5077583d6f8113c4ccec53cb98a802f0a33da2",
      "tree": "c828b9d123aedeca8b3f66ef5d3957865887858c",
      "parents": [
        "dda50a2620b5095c8893caede948575e0f762128"
      ],
      "author": {
        "name": "Augusto Noronha",
        "email": "anoronha@apple.com",
        "time": "Fri Sep 18 11:44:09 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 11:47:59 2026 -0700"
      },
      "message": "[lldb] Follow serial outlined functions when scanning for an unwind plan (#222800)\n\nFor code-size-constrained builds the compiler\u0027s instruction outliner\nfinds\nidentical instruction sequences across functions, moves them into a\nsingle\nOUTLINED_FUNCTION_\u003cn\u003e, and has every user call it. Instructions from a\nfunction\u0027s prologue, body or epilogue may all be outlined.\n\nlldb\u0027s instruction-emulation UnwindPlan creator scans the instructions\nof a\nfunction and, following the ABI\u0027s calling convention, assumes a call\nleaves the\nstack and registers in a known state. That assumption does not hold for\noutlined functions: when prologue and epilogue instructions are outlined\nout of\nthe function body, the UnwindPlan misses those register spills and\nrestores,\nwhich leads to inaccurate variable tracking in the caller\u0027s frames.\n\nThis patch looks for call instructions in the function body, and when\nthe\ncallee is an OUTLINED_FUNCTION_\u003cn\u003e it evaluates the callee\u0027s\ninstructions too,\nfolding the UnwindPlan-relevant state changes -- register saves,\nrestores, CFA\nchanges -- into the plan of the function being scanned.\n\nOnly straight-line helpers are followed: a single basic block whose sole\ncontrol flow is the terminator returning to the caller. Anything else\nhas more\nthan one path through the callee is skipped entirely. In practice that\nmeans\nmid-function outlined code, which rarely changes the unwind state.\nOutlined\nprologues, the common and important case, are covered.\n\nAssisted-by: Claude\n\nrdar://187149822\n\nGitOrigin-RevId: 5f23b5e1475236f51e614ea971e22bf800fbe7c8\n"
    },
    {
      "commit": "dda50a2620b5095c8893caede948575e0f762128",
      "tree": "13e341b802dea7f91d1798acc9439309bc96fc00",
      "parents": [
        "b1ff8208ed439f0659a79a059ca1f42ed689c6e6"
      ],
      "author": {
        "name": "alexey-gusarov",
        "email": "alexey.gusarov@gmail.com",
        "time": "Fri Sep 18 20:43:06 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 11:47:23 2026 -0700"
      },
      "message": "[lldb] Don\u0027t consult the plan stack for a stop an auto-continue will discard (#215522)\n\nFixes part (2) of #215189. The sibling PR for part (1) is #215521. The\ntwo are\nindependent, but are best landed together.\n\nWhen a completed thread plan auto-continues, `Thread::ShouldStop()`\nstill\nconsults subsequent plans and then discards their stop decisions. Those\ncalls\ncan change the state of the plans being consulted. In the failing case,\n`ThreadPlanRunToAddress` loses the breakpoint it was running to, so the\nprocess\nruns past the requested address.\n\nThis does not require a scripted plan:\n\n```python\n# thread stopped on an enabled breakpoint site\nthread.RunToAddress(next_instruction_address)   # before: process runs away\n```\n\n`ThreadPlan.h` already says that an auto-continuing plan overrides the\n`ShouldStop` of subsequently processed plans. Tighten that contract so\ntheir\n`ShouldStop` is not consulted at all, and make `Thread::ShouldStop()`\nfollow it\nby ending the plan walk after popping the auto-continuing plan.\n\nThe subsequent plans therefore keep their state, and an unexecuted\n`BreakpointSite` at the current PC is hit normally on the following\nresume.\n\n### Testing\n\nAdds\n`lldb/test/API/functionalities/thread_plan/step_over_breakpoint_site/`\nwith coverage for:\n\n* `RunToAddress` from an enabled breakpoint site;\n* the same plan queued by a scripted thread plan;\n* the stepped-over breakpoint being hit again on a later pass;\n* `RunToAddress` with the PC already off the breakpoint site;\n* a target two instructions away;\n* a user breakpoint at the target address.\n\nThe first three fail before the change on both Linux and Windows. The\nremaining\nthree pass before and after the change and cover the surrounding\nbehavior.\n\nWhole `check-lldb` passes on both Linux x86_64 and Windows x86_64 with 0\nfailed\nand 0 unresolved tests.\n\nmacOS is not covered because no host was available.\n\n---\n\nTool-use disclosure, per the LLVM AI tool policy: this change was\nprepared with\nthe assistance of Claude Code (`Assisted-by:` trailer on the commit).\nEverything\nwas read and reviewed before posting.\n\nrdar://184560595\n\nGitOrigin-RevId: 216acfbf7b4599b41a56a9023b024678b6d202af\n"
    },
    {
      "commit": "b1ff8208ed439f0659a79a059ca1f42ed689c6e6",
      "tree": "2a324aadf2f7b644b2ee6f4b3ef28c6f7522fa07",
      "parents": [
        "647b6e86c6b132ead689186044be8d7ecad4f473"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Fri Sep 18 19:42:32 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 11:46:54 2026 -0700"
      },
      "message": "[lldb] Remove the unused Process::ReadMemoryInChunks (#224656)\n\n`Process::ReadMemoryInChunks` and its `ReadMemoryChunkCallback` typedef\nhave no callers left in the tree, no unit tests, and no SB API exposure.\nThis commit removes it.\n\nThe method was added in commit f869d6efeec8 (#129307) for the minidump\nwriter, which was its only caller.  Then, commit 7f04a40a220e (#212641)\nreplaced that call with a direct loop over `ReadMemoryFromInferior` in\n`MinidumpFileBuilder::ReadWriteMemoryInChunks`, leaving this method\ndead.\n\nThis commit also drop the reference to this method from the description\nof\n`TestProcessSaveCoreMinidumpSizeMismatch.py`. The test is unchanged.\n\nGitOrigin-RevId: ae374f89dafb3ad6f534064688cb023d5bfafca1\n"
    },
    {
      "commit": "647b6e86c6b132ead689186044be8d7ecad4f473",
      "tree": "bbce0653ff08ed93f65ccba2558c8dee01c24cf4",
      "parents": [
        "e6979cbf24f31f5c4f1e153a1e0f8222481f0c2e"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Fri Sep 18 14:37:49 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 06:42:04 2026 -0700"
      },
      "message": "[lldb] Fix AddCacheData comments (#224383)\n\nFix the ambiguity  of \"substitute\" in comments\n\nGitOrigin-RevId: 540ee7cc012dad0bbfcef0352f6f63a60d27554a\n"
    },
    {
      "commit": "e6979cbf24f31f5c4f1e153a1e0f8222481f0c2e",
      "tree": "c501031461e1fca4eb7e65e4773ea4b871124422",
      "parents": [
        "83eefea80aa69752efd7486a5e37fbc19f23b328"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Fri Sep 18 15:19:58 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 06:26:42 2026 -0700"
      },
      "message": "[lldb][Windows] Skip assert frame recognizer tests on Windows on Arm (#224602)\n\nhttps://github.com/llvm/llvm-project/pull/224269 introduced the assert\nframe recognizers on Windows. This caused a regression on the Windows\nARM64 build bot: `PECallFrameInfo` does not handle ARM64 yet.\n\nThis patch skips the test on arm64 Windows.\n\nTracking issue: https://github.com/llvm/llvm-project/issues/224600\n\nGitOrigin-RevId: 852425505d6290f358f08454544aac688dbb5399\n"
    },
    {
      "commit": "83eefea80aa69752efd7486a5e37fbc19f23b328",
      "tree": "9a54442f4e76d07553c382540e0dc3d6a6cbe40d",
      "parents": [
        "a21010844dc3cf73dfbeaea80f1d0935b2234e59"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Fri Sep 18 12:14:02 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 04:17:37 2026 -0700"
      },
      "message": "[lldb] Make the shell expansion timeout an LLDB setting (#221952)\n\nLLDB launches a small utility program that prints its own arguments to\nexpand launch arguments. This lldb-argdumper invocation was previously\ncapped with a hardcoded 10 second timeout, which is low enough that we\nkept hitting it on CI bots in random tests:\n\n```\nrunCmd failed!\n\u003e\u003e\u003e error: shell expansion failed (reason: timed out waiting for shell command to complete). consider launching with \u0027process launch\u0027.\n```\n\nThis turns the timeout into the new \"platform.shell-expand-timeout\"\nsetting (in seconds) so it can be tuned without recompiling. The\ndefault is now three minutes, and a value of 0 disables the timeout\nentirely.\n\nThe test suite now disables the timeout altogether as it serves\nno purpose there.\n\nGitOrigin-RevId: 8c62ebfe131b6bdf9d1ab96a680ee0f85ce1b325\n"
    },
    {
      "commit": "a21010844dc3cf73dfbeaea80f1d0935b2234e59",
      "tree": "a89d3149f57e870c5ee423f46ac8f1f0f2c8a6a0",
      "parents": [
        "4a34c2237031df5543fdca8106c5e0b42e08fefa"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Fri Sep 18 08:54:12 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 00:57:04 2026 -0700"
      },
      "message": "[lldb][test] Add missing import to TestSynthesizedPropertyAccessor (#224543)\n\nThe decorators were introduced in 846719ae22 .\n\nGitOrigin-RevId: f17b2d1241b235c5a29e3eda2fd0ecfefee49ec1\n"
    },
    {
      "commit": "4a34c2237031df5543fdca8106c5e0b42e08fefa",
      "tree": "e66337e612529755f486932f34cceb7e4082530f",
      "parents": [
        "744b27eb28f46b8b811251084dd0d182e3fcbdce"
      ],
      "author": {
        "name": "Ryosuke Niwa",
        "email": "rniwa@webkit.org",
        "time": "Fri Sep 18 00:35:25 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 00:42:29 2026 -0700"
      },
      "message": "Require Darwin for TestSynthesizedPropertyAccessor so that it won\u0027t fail on every PR. (#224531)\n\nGitOrigin-RevId: 7dd3c5f4a6273ea730745b3b97e4fa30b3d7558a\n"
    },
    {
      "commit": "744b27eb28f46b8b811251084dd0d182e3fcbdce",
      "tree": "9496552d47a1a237504d1d86147d825086cffa28",
      "parents": [
        "66cd0504404580715c40c98cff2aa900b26947db"
      ],
      "author": {
        "name": "Felipe de Azevedo Piovezan",
        "email": "fpiovezan@apple.com",
        "time": "Fri Sep 18 08:06:01 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Sep 18 00:12:35 2026 -0700"
      },
      "message": "[lldb-server] Fix GetMemoryRegionInfo syntax to include trailing `;` (#224319)\n\nGDBRemoteCommunicationClient::GetMemoryRegionInfo parses fields of this\npacket using `StringExtractor::GetNameColonValue`, which expects a `;`\neven for the last field. The documentation of the packet doesn\u0027t\nexplicitly say so, but implies these fields should always be\n;-terminated. As a result, before this patch, that field was not parsed\nat all.\nGitOrigin-RevId: 1b5da535082e9f2b7bd469fbaaa1ac9aa65ba562\n"
    },
    {
      "commit": "66cd0504404580715c40c98cff2aa900b26947db",
      "tree": "468ddacce5f3a9987c8be61d95efb9d4dc2f78c4",
      "parents": [
        "dfaed17bd5fc8fc04f5700157213c43b829319ae"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Thu Sep 17 20:46:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 20:51:55 2026 -0700"
      },
      "message": "[lldb] Turn GetDeclContextDIEContainingDIE into a worklist (NFC) (#224453)\n\nConvert GetDeclContextDIEContainingDIE from a recursive to a worklist\napproach, avoiding a stack frame per DIE for long chains. The behavior\nremains the same.\n\nGitOrigin-RevId: 5d7bda4e51049f43d39ce6a35d7c44fa44036509\n"
    },
    {
      "commit": "dfaed17bd5fc8fc04f5700157213c43b829319ae",
      "tree": "7c2eb5eae0000e2c793785b3dc3383f740d10e11",
      "parents": [
        "853f7315c4c57eb15a6bb10a30598a8837b20933"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Thu Sep 17 16:57:38 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 17:01:59 2026 -0700"
      },
      "message": "[lldb] Don\u0027t dereference a possibly null DataExtractor in FindPlugin (#224347)\n\nRestore the behavior from before e4c83b7b119c, which changed the\nparameter from a DataBufferSP the branch guaranteed to be null-or-empty\ninto a DataExtractorSP it unconditionally dereferences.\n\nNo in-tree caller reaches this branch with a null extractor, so there is\nno test.\n\nrdar://168105064\n\nGitOrigin-RevId: a56ce734ca42c1fa10e50d3a5b4af336cddd7b5e\n"
    },
    {
      "commit": "853f7315c4c57eb15a6bb10a30598a8837b20933",
      "tree": "b8ea2adcea9150c25cceaf3983178490944f78b8",
      "parents": [
        "cfe108c52fb1c05a4ee53a4ec5acc8efd7267b32"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Thu Sep 17 15:58:53 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 16:03:26 2026 -0700"
      },
      "message": "[LLDB] Skip tests with older versions of clang (#224468)\n\nGitOrigin-RevId: 846719ae2259eb2829a251fa7ca965976376abbd\n"
    },
    {
      "commit": "cfe108c52fb1c05a4ee53a4ec5acc8efd7267b32",
      "tree": "e9ca21850812beb5417a5fe6b32bac1d5940a30e",
      "parents": [
        "d7ba82da27fbd31d94b5a3a97a348c73d5176646"
      ],
      "author": {
        "name": "alexey-gusarov",
        "email": "alexey.gusarov@gmail.com",
        "time": "Fri Sep 18 00:48:22 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 15:54:58 2026 -0700"
      },
      "message": "[lldb] Read the bool that a scripted thread plan\u0027s should_step returns (#215521)\n\nFixes part (1) of #215189.\n\n`ScriptedThreadPlanPythonInterface::GetRunState()` used\n`GetUnsignedIntegerValue()` to read the script\u0027s `should_step` return\nvalue. A\nPython `bool` arrives as a `StructuredData::Boolean`, so the return\nvalue was\ndiscarded and every scripted thread plan reported `eStateStepping`: a\nplan\nreturning `False` single-stepped exactly like one returning `True`.\n\nThe documented contract for `should_step` is a bool\n(`lldb/docs/use/tutorials/automating-stepping-logic.md` and\n`lldb/examples/python/templates/scripted_thread_plan.py`). Read it as\none; any\nother return value is logged and causes the plan to step.\n\n### Behavior change\n\n| `should_step` returns             | before  | after   |\n| --------------------------------- | ------- | ------- |\n| `True`                            | step    | step    |\n| `False`                           | step    | **run** |\n| `0`, `1`, or `lldb.eStateRunning` | **run** | step    |\n| `lldb.eStateStepping`             | step    | step    |\n\nThe integer case is an intentional behavior change. Integers used to be\nreinterpreted as a `StateType`, which also made them the only way to\nmake a\nscripted plan run while boolean `False` was being discarded. They are\nnot part\nof the documented `should_step` contract.\n\nThe behavior for a missing `should_step` is unchanged by this PR: it\ncontinues\nto step.\n\n### In-tree user of the old behavior\n\n`commands/frame/recognizer/step-through/TestFrameRecognizerStepThrough.py`\nreturns `False` from `should_step` and relied on being single-stepped\nanyway.\nWith `False` honored, its `ThreadPlanRunToAddress` sub-plan handles the\nstop\nthat completes it, so `explains_stop` is not called.\n\nUpdate the plan to notice completion of the sub-plan in `should_stop`\nand call\n`SetPlanComplete` there, as described by the `ScriptedThreadPlan`\ndocumentation.\n\n### Testing\n\n`lldb/test/API/functionalities/step_scripted/` covers:\n\n* `should_step \u003d\u003d True` stepping one instruction;\n* `should_step \u003d\u003d False` running to the next breakpoint;\n* non-bool integer and `StateType` returns stepping.\n\nThe `False` and invalid-return cases fail before this change on both\nLinux and\nWindows.\n\n### Landing order\n\nThis change allows scripted plans returning `False` from `should_step`\nto reach\nthe `SetAutoContinue(true)` path in\n`Thread::SetupToStepOverBreakpointIfNeeded()`. #215522 fixes the\nindependent\nthread-plan-stack issue on that path. The two changes are independent,\nbut are\nbest landed together.\n\n---\n\nTool-use disclosure, per the LLVM AI tool policy: this change was\nprepared with\nthe assistance of Claude Code (`Assisted-by:` trailer on the commit).\nEverything\nin the change was read and reviewed before posting.\n\nCo-authored-by: Med Ismail Bennani \u003cismail@bennani.ma\u003e\nGitOrigin-RevId: dd0ee5e10da57e2b1ebf0cbf066b32a8ffe92c28\n"
    },
    {
      "commit": "d7ba82da27fbd31d94b5a3a97a348c73d5176646",
      "tree": "33dcc1ad3637d1d8d44b2c76f0603eb90f3b0758",
      "parents": [
        "4952269d68d60dc5133ecd0d4efdf7b79d92e328"
      ],
      "author": {
        "name": "Alex Langford",
        "email": "alangford@apple.com",
        "time": "Thu Sep 17 15:21:17 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 15:32:27 2026 -0700"
      },
      "message": "[lldb] Remove remaining ConstString section names in ObjectFileELF (#224407)\n\nGitOrigin-RevId: 45cb52f63cc38f0f8e8ce46df07585b68cbc018f\n"
    },
    {
      "commit": "4952269d68d60dc5133ecd0d4efdf7b79d92e328",
      "tree": "9d80bf87eba5c83b6f41f0a7851da71bfeb7e3e8",
      "parents": [
        "7d3f8621e5dfa12bc3057fba5089f4e5c4f6e97c"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Fri Sep 18 00:13:46 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 15:17:22 2026 -0700"
      },
      "message": "lldb: Require x86_64 for x86_64-specific NativePDB tests (#224140)\n\nThese tests contained x86_64 datalayout and triples, but only\nrequired system-windows. On an aarch64 windows host, %build will\nbe an incompatible datalayout, so require exactly x86_64 windows\nhosts. Alternatively the test could be changed to not have the\ndatalayout, but I\u0027m not sure if that\u0027s correct here.\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 826f78dee748c53057bf27c297b90964aaaedcfb\n"
    },
    {
      "commit": "7d3f8621e5dfa12bc3057fba5089f4e5c4f6e97c",
      "tree": "af543f9d722279199e54bc0ec286351d23f27dd3",
      "parents": [
        "526df4d694bf914d05c08e20b94bb45d803ce039"
      ],
      "author": {
        "name": "Dave Lee",
        "email": "davelee.com@gmail.com",
        "time": "Thu Sep 17 14:41:04 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 14:48:51 2026 -0700"
      },
      "message": "[lldb] Add APSInt literal support to formatter_bytecode.py (#223805)\n\nFollow up to #220665.\n\nGitOrigin-RevId: 3d88c0ebbb97d3a6acbc7d5feae608ca42c612ea\n"
    },
    {
      "commit": "526df4d694bf914d05c08e20b94bb45d803ce039",
      "tree": "592ae907e0df3146251c474539b0685caea8a23d",
      "parents": [
        "84756983e9c8709ef5d9486f1eb9f4a583586445"
      ],
      "author": {
        "name": "Alex Langford",
        "email": "alangford@apple.com",
        "time": "Thu Sep 17 11:10:42 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 14:47:57 2026 -0700"
      },
      "message": "Remove ConstString from Section (#224170)\n\nSection names do benefit from deduplication, but most are small enough\nto fit into a std::string without an allocation (i.e. SSO). We trade a\nsmall amount of memory to avoid the cost of a ConstString\nlookup/creation.\n\nGitOrigin-RevId: 123d223e8518f82684e524bf1d86b3b548328214\n"
    },
    {
      "commit": "84756983e9c8709ef5d9486f1eb9f4a583586445",
      "tree": "5a28eefbe7c8e141fe143fc7cf9916035cde2ef1",
      "parents": [
        "e0b2f0ae0e69f34cbd8eed235fcce4e6e6747aeb"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Thu Sep 17 11:05:55 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 11:12:59 2026 -0700"
      },
      "message": "[lldb] Detect cycles when following DIE references (#223912)\n\nA DW_TAG_subprogram whose DW_AT_specification points at its own offset\ncauses both GetDIENamesAndRanges and GetDeclContextDIEContainingDIE to\nkeep recursing\n\nTrack the DIEs already visited, the way the sibling GetAttributes helper\ndoes. GetDIENamesAndRanges also moves to a worklist so a long chain of\ndistinct specifications no longer costs a stack frame per DIE.\n\nrdar://186891786\n\nGitOrigin-RevId: d230798c345ac225591f7bed53204f4ba5206539\n"
    },
    {
      "commit": "e0b2f0ae0e69f34cbd8eed235fcce4e6e6747aeb",
      "tree": "89e1f289ce96d2f95a8927ec193fbf2b0a0cc31b",
      "parents": [
        "df406d752a480e435f0fc760996ab3f9bfe672e9"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Thu Sep 17 18:34:53 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 10:37:38 2026 -0700"
      },
      "message": "[lldb][windows] add assert frame recognizer Windows (#224269)\n\nThis patch implements `AssertFrameRecognizer` on Windows.\n\nSince the Windows C Runtime can be either statically or dynamically\nlinked, lldb can\u0027t match the module name to be able to support both.\nTherefore, the matches on `abort` and `_wassert` do not check the name\nof the module.\n\nThe `assert.test` test was also relaxed to check the Windows error\nformat (`Exception 0xc0000409`), since Windows surfaces `__fastfail` as\na `STATUS_STACK_BUFFER_OVERRUN` exception rather than a POSIX signal.\n\nrdar://175328961\n\n---\n\nThis relands https://github.com/llvm/llvm-project/pull/197282, reverted\nin https://github.com/llvm/llvm-project/pull/198263 for two buildbot\nfailures.\n\n1. **lldb-x86_64-win** failed with `0xC0000005` in `frame recognizer\nlist` (`commands/frame/recognizer/TestFrameRecognizer.py`,\n`test_frame_recognizer_target_specific`). This is due to a call to\n`strlen(nullptr)` which is fixed by\nhttps://github.com/llvm/llvm-project/pull/222810.\n\n2. **lldb-remote-linux-win** started running `Recognizer`/`assert.test`\nand failed with `\"stop reason \u003d signal SIGABRT\"` where the test expects\n`\"hit program assert\"`. That bot debugs a remote Linux target from a\nWindows host: system-linux is a host feature, so the known-broken Linux\ntarget (llvm.org/pr56144) was not skipped. Add remote-linux to the\nUNSUPPORTED list.\n\nGitOrigin-RevId: a1eae51eb558f75be6b9497e68ee7937f8f34e8a\n"
    },
    {
      "commit": "df406d752a480e435f0fc760996ab3f9bfe672e9",
      "tree": "7c2aa6fc689ed4959e6c4d06f8db00a124093654",
      "parents": [
        "40bb358dda208ed9e931f025ba04a0d0fce7c123"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Thu Sep 17 10:21:04 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 10:27:36 2026 -0700"
      },
      "message": "[LLDB] Simplify LLDB test launches with lldbutil (NFC) (#224175)\n\nGitOrigin-RevId: e1723573be49942ba9c687e9c176f5d9d8751c60\n"
    },
    {
      "commit": "40bb358dda208ed9e931f025ba04a0d0fce7c123",
      "tree": "241f354b5e66f738cc8101646b740e35b65cebc1",
      "parents": [
        "f6fe1994f3710b0f83b3ad49fccc7e550893100d"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Thu Sep 17 16:57:10 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 09:04:38 2026 -0700"
      },
      "message": "[lldb] Surface GetIndexOfChildWithName errors instead of dropping them (#224059)\n\n`ValueObjectSynthetic::GetChildMemberWithName` and\n`SBValue::GetIndexOfChildWithName` called `llvm::consumeError` on the\n`llvm::Expected` returned by `GetIndexOfChildWithName` and reported the\nfailure as a null `ValueObjectSP` / `UINT32_MAX`, so the reason a lookup\nfailed never reached anyone. Log them instead: `LLDBLog::DataFormatters`\nfrom ValueObject and formatter code, `LLDBLog::API` at the SB boundary.\nThat is the convention `BlockPointer.cpp` and `LibCxx.cpp` already\nfollow.\n\nAlso, in `ValueObjectSynthetic::GetIndexOfChildWithName`:\n\n- A front-end with `TypeOptions::eTypeOptionCustomSubscripting` that\nfailed to find the child left `index` at its `SIZE_MAX` initializer,\ndropped the front-end\u0027s error unread, then cached `SIZE_MAX` in\n`m_name_toindex` and returned it as a valid index. Return the\nfront-end\u0027s error instead.\n- Call `GetNumChildren(max)` rather than\n`GetNumChildrenIgnoringErrors(max)` for the `\"[N]\"` subscript bounds\ncheck and propagate the error, so a child count that fails to compute is\nno longer reported as a subscript that is out of range.\n- Return early on a cache hit rather than falling through a chain of\nelse-if branches that retested `found_index`.\n\nLower-cases the two `\"Type has no child named\"` messages in\n`TypeSynthetic.h` for consistency with every other instance of that\nstring.\n\nFollow-up to the review on #136693.\n\nrdar://150281004\nrdar://150281080\n\nGitOrigin-RevId: fd0ecaccdc131ae3e541be4d1eb83d85758bf104\n"
    },
    {
      "commit": "f6fe1994f3710b0f83b3ad49fccc7e550893100d",
      "tree": "96a00925c5d3783b2ff3cf1e983d5b5631b67fa1",
      "parents": [
        "510000da8f55be63d5c18b46e1bf1f54fa0bcc65"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Thu Sep 17 16:35:03 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 08:43:26 2026 -0700"
      },
      "message": "[lldb] Substitute breakpoint opcodes in expedited memory (#224304)\n\nA stub may send expedited memory in a stop reply, and\n`ProcessGDBRemote::SetThreadStopInfo` puts those bytes straight into the\nmemory cache.  When a range covers a breakpoint lldb manages itself, the\ncache then holds the trap opcode, and every later read of that address\nreturns the trap instead of the instruction underneath.  However, A read\nreply does not have this problem: `ReadMemoryFromInferior` calls\n`RemoveBreakpointOpcodesFromBuffer` before returning. The expedited path\nnever did, so this fix adds `Process::AddCacheData` to do the same and\nuse\nit at the two places that cache expedited memory.\n\n`TestWriteOverSoftwareBreakpoint.py` catches this once the stub\nexpedites a\nrange that covers the breakpoint:\n\n```\nAssertionError: bytearray(b\u0027\\x00\\x00 \\xd4\u0027) !\u003d bytearray(b\u0027\\xcd\\x00\\x00\\x90\u0027)\n```\n\n`00 00 20 d4` is AArch64 `brk #0`. The test writes `0xcd` over the first\nbyte at the site, continues to it, and reads back. Only the lldb-managed\ncase fails; with an external breakpoint the stub hides its own trap.\n\nGitOrigin-RevId: e3c4c16567e3074dcd42da664fcb91298fd8c0fb\n"
    },
    {
      "commit": "510000da8f55be63d5c18b46e1bf1f54fa0bcc65",
      "tree": "a84717ff080e7d1802de5fbdf744c7944d823db7",
      "parents": [
        "9845f801176498602ca088fdacabaec802854387"
      ],
      "author": {
        "name": "David Spickett",
        "email": "david.spickett@arm.com",
        "time": "Thu Sep 17 16:23:21 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 08:30:06 2026 -0700"
      },
      "message": "[lldb][docs] Put missing \u0027;\u0027 in qMemoryRegionInfo ProtectionKey doc (#224341)\n\nThese are all name:value; and are documented as such but I forgot to add\nthe ; for this one.\n\nFound while reviewing #224319.\n\nGitOrigin-RevId: 1a2f45be47ccdfbaa206ca6b486f91c205d578f6\n"
    },
    {
      "commit": "9845f801176498602ca088fdacabaec802854387",
      "tree": "c448e7d5f4ee7e6bb56014f8748cd217a8f23504",
      "parents": [
        "6a1b1ce317e4c29d58d9c861d04a10dca0725090"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Thu Sep 17 15:00:26 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 07:07:50 2026 -0700"
      },
      "message": "[lldb] Guarded GDBRemoteCommunicationServerLLGS::m_saved_registers_map (#219431)\n\nm_saved_registers_map and m_next_saved_registers_id were guarded by a\ndedicated std::mutex. This replaces the manual locking logic with\n`Guarded`.\n\nThis also fixes the missing lock in the Handle_QSaveRegisterState\nassert which was previously a race condition.\n\nGitOrigin-RevId: eebda156ed5330e03c603b018cec3f20b2d9a113\n"
    },
    {
      "commit": "6a1b1ce317e4c29d58d9c861d04a10dca0725090",
      "tree": "f0d31f8bd111a7f71c4f570e83aea1c0a4cd8ee0",
      "parents": [
        "8ea1449125bb9442212b495ba5ca3a661870f45a"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Thu Sep 17 13:33:24 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 05:37:45 2026 -0700"
      },
      "message": "[lldb] Use Guarded in CPPLanguageRuntime (#220212)\n\nUse Guarded to make sure m_vtable_info_map cannot be accesses without\nlocking the respective lock.\n\nGitOrigin-RevId: 2526f1ca2d81565771ab9c1e2dce44d013d7cc41\n"
    },
    {
      "commit": "8ea1449125bb9442212b495ba5ca3a661870f45a",
      "tree": "919e0dc9eb9003fc163d1a095c33641fa73de61e",
      "parents": [
        "917bdc713929447db263c3163c750311b0e0ba0a"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Thu Sep 17 12:07:17 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 04:13:35 2026 -0700"
      },
      "message": "[lldb][test] Increase gdbremote_testcase timeout (#221239)\n\nTestLldbGdbServer.py is randomly timing out on slow machines. This bumps\nthe timout to a minute by default.\n\nGitOrigin-RevId: 5f639bc8a42793e42305c3512603b7068a79c5d0\n"
    },
    {
      "commit": "917bdc713929447db263c3163c750311b0e0ba0a",
      "tree": "64c6454fe2d8361ea1e86c2f1d0d08a254a82ca9",
      "parents": [
        "00ffb0f400ef1f317746a6fd62fb6dd6c42f3bac"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Thu Sep 17 12:07:03 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 04:13:13 2026 -0700"
      },
      "message": "[lldb][NFC] Remove ModuleChild::SetModule (#223661)\n\nThis function isn\u0027t used by anyone. Furthermore, we shouldn\u0027t use it as\nsome ModuleChild subclasses use their module\u0027s lock to synchronize\naccesses to their memory. If this function was actually called by\nanyone, it would introduce race conditions into classes that use the\nmodule\u0027s lock for synchronization.\n\nGitOrigin-RevId: 870b07db9487fef2f5907230692fd3d111ec2f10\n"
    },
    {
      "commit": "00ffb0f400ef1f317746a6fd62fb6dd6c42f3bac",
      "tree": "346579cc53b5907ea3d8b65607aa4c1b891ef60a",
      "parents": [
        "7277d4121a17c17fcbbffdffc18462246e08567d"
      ],
      "author": {
        "name": "Raphael Isemann",
        "email": "rise@apple.com",
        "time": "Thu Sep 17 12:06:36 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 04:12:45 2026 -0700"
      },
      "message": "[lldb][test] Print command output when it unexpectedly passes (#224021)\n\nSome LLDB tests expect commands to fail. However, we do sometimes see\nthese commands actually pass on the bots and the test output doesn\u0027t\nreally indicate what is going on.\n\nThis patch adds the (error) output of commands that we expected to fail\nbut didn\u0027t do the test output. This changes the dreaded `Command \u0027foo\u0027\nis expected to fail!` error to:\n\n```\nCommand \u0027foo\u0027 is expected to fail!\nOutput: bar\n```\nGitOrigin-RevId: b5277b196f75cdb845290667b7f923f01055584d\n"
    },
    {
      "commit": "7277d4121a17c17fcbbffdffc18462246e08567d",
      "tree": "4dbf461c8c2830f9503cda8db80b8a4a2c6689a8",
      "parents": [
        "8454446d1148c3d4e967a0018e8c852e3c87af10"
      ],
      "author": {
        "name": "David Spickett",
        "email": "david.spickett@arm.com",
        "time": "Thu Sep 17 11:29:30 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Sep 17 03:32:02 2026 -0700"
      },
      "message": "[lldb][test] Remove Arm xfail from a test in TestFrameProviderStepping.py (#224256)\n\nAdded by #223834.\n\nI suspect this got carried over from other tests where the code has to\ndeal with the Arm/Thumb bit in the PC. Since this test doesn\u0027t get that\nfar it\u0027s not a problem, so this test is unexpectedly passing.\n\nGitOrigin-RevId: b022b32fc1e315a3f61fb9ad3ede55218c2c16c4\n"
    },
    {
      "commit": "8454446d1148c3d4e967a0018e8c852e3c87af10",
      "tree": "858c89185f0c8f6758129808fcc9da3b0fd24627",
      "parents": [
        "365bb2b4a6cdd52d7c931bea1ce077e786880801"
      ],
      "author": {
        "name": "Jonas Devlieghere",
        "email": "jonas@devlieghere.com",
        "time": "Wed Sep 16 22:43:06 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 22:47:12 2026 -0700"
      },
      "message": "[lldb] Stop caching cross-module callees in CallEdge (#224165)\n\nDirectCallEdge cached the Function it resolved for its callee. A\nCallEdge is owned by a Module in the shared module cache, so it\noutlives any one Target, while the callee it resolves to depends on\nthat Target\u0027s image list and dies with its own module. The cached\npointer dangled once the callee\u0027s module was unloaded, crashing the\nnext backtrace that walked tail call frames.\n\nKeep only the symbol name and re-resolve on every call. GetCallee\nreturns a SymbolContext so the caller holds the callee\u0027s module for as\nlong as it uses the Function.\n\nScoping the lookup to the caller\u0027s own module or compile unit would\nalso make the cache safe, but direct tail call edges cross module\nboundaries by design. Clang points DW_AT_call_origin at a declaration\nDIE when the callee is external. See the cross_dso tail call test.\n\nrdar://181262163\n\nGitOrigin-RevId: 9062217eaf8d75c340801d02198e1fb28897da21\n"
    },
    {
      "commit": "365bb2b4a6cdd52d7c931bea1ce077e786880801",
      "tree": "2e5838ead85b6b8ebb52e5150ee937b74cfbb0c0",
      "parents": [
        "7dc7c07f66119bb1b2e377e039d411ea24b4852f"
      ],
      "author": {
        "name": "jimingham",
        "email": "jingham@apple.com",
        "time": "Wed Sep 16 17:57:37 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 18:03:04 2026 -0700"
      },
      "message": "Allow scripted frames to implement custom step operations (#223834)\n\nAdd an API to the ScriptedFrame interface that gives the ScriptedFrame a\nchance to return a scripted ThreadPlan class name for a class that\nimplements the requested step type.\n\nLLDB will consult the ScriptedFrame (if any) first. If the ScriptedFrame\nreturns an empty class name, the standard stepping algorithms will be\nused, otherwise an instance of the provided class will be constructed -\npassing in an optional - ScriptedFrame provided `extra_args` dictionary\n- and added to the ThreadPlanStack to handle this step.\n\nGitOrigin-RevId: a0dfeecc18b8a769cfdb589ad4a0151744716ab5\n"
    },
    {
      "commit": "7dc7c07f66119bb1b2e377e039d411ea24b4852f",
      "tree": "a5abbf3b8a3ce2196327d962e1b1c3956384aeb9",
      "parents": [
        "b4a05a7e6dea47301789223d69a8eaa183f2013a"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 16 17:17:43 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 17:20:33 2026 -0700"
      },
      "message": "[LLDB] Skip test with older versions of clang (really: libc++) (#224171)\n\nGitOrigin-RevId: df4d6ccd074dd0f3940d0614b951810dd585a3f6\n"
    },
    {
      "commit": "b4a05a7e6dea47301789223d69a8eaa183f2013a",
      "tree": "43cd91cc495238b2a640c86bc7ded2dde88ec6ec",
      "parents": [
        "4d109bdf1f739d9db255c43ee40b0d94d66be45c"
      ],
      "author": {
        "name": "Alex Langford",
        "email": "alangford@apple.com",
        "time": "Wed Sep 16 15:54:10 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 15:56:51 2026 -0700"
      },
      "message": "Change string type of StackFrameRecognizer module names (#222810)\n\nThe majority of these come from FileSpec filenames (which are no longer\nConstStrings). Instead of putting them into the StringPool, the\nStackFrameRecognizerManager can just hold onto the name in the\nRegisteredEntry.\n\nGitOrigin-RevId: 39477871dcb54b41d82f8835c630d143bf3036ae\n"
    },
    {
      "commit": "4d109bdf1f739d9db255c43ee40b0d94d66be45c",
      "tree": "3f6759b62d6840c96639a980e2151c53d7c3764f",
      "parents": [
        "ec6a8afbe40ac8629ff93c72c6a2a2d86fab743b"
      ],
      "author": {
        "name": "Bar Soloveychik",
        "email": "barsolo@meta.com",
        "time": "Wed Sep 16 12:54:24 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 13:00:56 2026 -0700"
      },
      "message": "[lldb] Parse GDB remote register union types (#223485)\n\n- Parses GDB XML `\u003cunion\u003e` definitions.\n- Supports builtin, vector, nested-union, and vector-of-union fields.\n- Resolves types in document order and scopes IDs per feature.\n- Rejects malformed, partial, duplicate, forward-referenced, and\nincompatible definitions.\n- Displays union metadata through register info.\n\nhttps://sourceware.org/gdb/download/onlinedocs/gdb.html/Target-Description-Format.html\n\n```\n(lldb) register info u0\n       Name: u0\n       Size: 16 bytes (128 bits)\n    In sets: General Purpose Registers (index 0)\n\n  Union members:\n    f32 (ieee_single, 4 bytes)\n    f64 (ieee_double, 8 bytes)\n    s64 (int64, 8 bytes)\n    u64 (uint64, 8 bytes)\n    raw (uint128, 16 bytes)\n(lldb) register info u1\n       Name: u1\n       Size: 16 bytes (128 bits)\n    In sets: General Purpose Registers (index 0)\n\n  Union members:\n    scalar (ieee_single, 4 bytes)\n    floats (v4f, 16 bytes)\n    doubles (v2d, 16 bytes)\n    raw (uint128, 16 bytes)\n(lldb) register info n0\n       Name: n0\n       Size: 16 bytes (128 bits)\n    In sets: General Purpose Registers (index 0)\n\n  Union members:\n    f32_view (float_lane_view, 16 bytes)\n    f64_view (double_lane_view, 16 bytes)\n    raw (uint128, 16 bytes)\n(lldb) register info b0\n       Name: b0\n       Size: 32 bytes (256 bits)\n    In sets: General Purpose Registers (index 0)\n\n  Union members:\n    c (bytes32, 32 bytes)\n    words (words8, 32 bytes)\n(lldb) register info vu0\n       Name: vu0\n       Size: 16 bytes (128 bits)\n    In sets: General Purpose Registers (index 0)\n\n  Vector elements: 4\n(lldb) register read u0\n  u0 \u003d 0x0000000000000000ffffffff3fc00000\n```\n\nNext PR (final) will build real typed values from it. for example:\n```\n(lldb) register read u0\n    u0 \u003d 0x0000000000000000ffffffff3fc00000\n       \u003d (f32 \u003d 1.5, f64 \u003d NaN, s64 \u003d ..., u64 \u003d ..., raw \u003d ...)\n```\n\nCo-authored-by: Bar Soloveychik \u003cbarsolo@fb.com\u003e\nGitOrigin-RevId: 356c0c8d532d8f286fcd3d0342b8930fabbbff04\n"
    },
    {
      "commit": "ec6a8afbe40ac8629ff93c72c6a2a2d86fab743b",
      "tree": "5f21247ac6ef9a2d21b23a252eccb68cf517ab2d",
      "parents": [
        "b694ce57c118bc0310d6488d7f71b352df313e02"
      ],
      "author": {
        "name": "Adrian Prantl",
        "email": "aprantl@apple.com",
        "time": "Wed Sep 16 12:51:20 2026 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 13:00:07 2026 -0700"
      },
      "message": "[LLDB] Skip test under gold (#224113)\n\nThe way gold emits symbols created by linker scripts is not implemented\nin LLDB.\n\nFor the record, I asked Claude to write a patch to implement the\nfunctionality but it came up with a linear search through all sections\nwhich I was afraid might be quite expensive. I\u0027m happy to purse that as\nan alternative if people think it is worth it, with the caveat that I am\nnot an ELF expert.\n\nGitOrigin-RevId: 8e1d22d857d85ef9254ca6f69800d9774a8dbc75\n"
    },
    {
      "commit": "b694ce57c118bc0310d6488d7f71b352df313e02",
      "tree": "42df3bc44f5dcad518e2d3dc9e89e6a9c5eaebdb",
      "parents": [
        "7e3df7ab3c062505771b2383cd14dea1a35fe83f"
      ],
      "author": {
        "name": "Anutosh Bhat",
        "email": "andersonbhat491@gmail.com",
        "time": "Thu Sep 17 00:21:41 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 11:58:16 2026 -0700"
      },
      "message": "[lldb] Add an option to build liblldb statically (#223210)\n\nThis builds on the Emscripten host and platform work from the previous\npatches.\n\n`liblldb` is currently always created as a shared library. That makes\nsense for the normal LLDB installation, but it is restrictive for\nembedders where dynamic libraries are unavailable, expensive to load or\nsimply not the preferred deployment model.\n\nMy immediate use case is bringing LLDB into\n[WasmBolt](https://github.com/anutosh491/WasmBolt) (try\n[here](https://anutosh21.github.io/WasmBolt/)). Loading the complete\n`liblldb` WebAssembly side module dynamically has significant startup\noverhead. A static build lets the browser application link the required\nLLDB components and plugins into its main module during CI, after which\nstartup is much faster and the linker can remove unreachable code.\n\nThe use case is not specific to Emscripten, so this patch adds the\nplatform-independent `LLDB_BUILD_STATIC_LIBLLDB` option while preserving\nthe existing shared-library default.\n\nThe patch:\n\n- builds `liblldb` as a static library when explicitly requested;\n- installs the resulting archive;\n- skips shared-library version and export-list processing;\n- propagates `LLDB_STATIC` so Windows consumers do not use `dllimport`;\n- rejects the incompatible combination with `LLDB_BUILD_FRAMEWORK`.\n\nIn my Emscripten 6 experiment, the statically linked final module is\naround 74 MB, while the shared `liblldb` side module alone was around 98\nMB and considerably more expensive to load.\n\nTested by:\n\n- building and installing `liblldb.a` natively on macOS;\n- building `liblldb.a` with Emscripten 6;\n- linking the complete Emscripten `lldb.wasm` executable against the\nstatic target;\n- confirming that the default configuration still generates shared\n`liblldb`.\n\nGitOrigin-RevId: c9c1ed7e41b245d15ee339b51696c546d5dc6d18\n"
    },
    {
      "commit": "7e3df7ab3c062505771b2383cd14dea1a35fe83f",
      "tree": "7e0abf142f8f14be45cefaba41e30df77fa18ab2",
      "parents": [
        "2503c2d2d1a089da6548a3a4d27df918cae0e055"
      ],
      "author": {
        "name": "Matt Arsenault",
        "email": "Matthew.Arsenault@amd.com",
        "time": "Wed Sep 16 19:29:47 2026 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 10:37:22 2026 -0700"
      },
      "message": "clang: Do not overwrite a module\u0027s DataLayout in the backend (#224012)\n\nemitAssembly() unconditionally reset the module\u0027s DataLayout from\nTargetMachine::createDataLayout(). The TargetMachine\u0027s DataLayout is\nunreliable given the existence of the \"target-abi\" module flag, so it\nshould not be used.\n\nFor -x ir input modules this would discard the correct datalayout in\nfavor of a possibly wrong one.\n\nThe post-codegen consistency check compared the module\u0027s DataLayout\nagainst clang\u0027s frontend getDataLayoutString(), which likewise ignores the\ntarget-abi flag. Recompute the expected layout from the module\u0027s own ABI via\nTriple::computeDataLayout(getTargetABIName(M)) so the check stays\nmeaningful without assuming the DataLayout is a fixed property of the target\noptions. This still detects frontend/LLVM DataLayout drift for generated modules.\n\nPR44896.ll and asan-unified-lto.ll declared x86_64 modules but ran without an\nexplicit triple, relying on the old overwrite to convert them to the default target.\nPin them to their declared triple and refresh their stale DataLayout strings.\n\nCo-authored-by: Claude (Claude-Opus-4.8) \u003cnoreply@anthropic.com\u003e\nGitOrigin-RevId: 630b6b92235ea34a50efd1c4d9f101af25547141\n"
    },
    {
      "commit": "2503c2d2d1a089da6548a3a4d27df918cae0e055",
      "tree": "b1b52f8baf185f48d4892ce442442e06e3ac297a",
      "parents": [
        "54ece8197b1b981fff5a42c12c12f9d96203bcfb"
      ],
      "author": {
        "name": "Jordan Rupprecht",
        "email": "rupprecht@google.com",
        "time": "Wed Sep 16 11:40:52 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 09:48:23 2026 -0700"
      },
      "message": "[lldb-dap][test] Only check compile units from stack frames for main.c (#223450)\n\nThe `test_stack_frame_compile_unit_id` test case added in #222512 checks\nthat compileUnitId in a stack frame points to the source file. However,\nit does so by checking there is only one unique compileUnitId in the\nwhole stack trace. This may not be true if start.S is included as a\ncompile unit.\n\nRelax the check by only looking for stack frames that point to main.c.\nAlso check the other way, i.e. ensure the same compile unit id isn\u0027t\nreferenced by a stack frame that doesn\u0027t point to main.c. This way the\ntest retains its stated goal of making sure the compile unit id resolves\nto its source file while also allowing start.S from a different compile\nunit to be present.\n\nGitOrigin-RevId: 9f6791b42d91f72592133e470a4408ae49026ab7\n"
    },
    {
      "commit": "54ece8197b1b981fff5a42c12c12f9d96203bcfb",
      "tree": "98ab49f62117c523383f466ca7a010efb96e1e9d",
      "parents": [
        "c676c0597db6967bc9db10974c25ca928c91c82a"
      ],
      "author": {
        "name": "satyanarayana reddy janga",
        "email": "satyajanga@gmail.com",
        "time": "Wed Sep 16 10:22:40 2026 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 08:28:43 2026 -0700"
      },
      "message": "[lldb] End to end test for address spaces using lldb-server mock accelerator  plugin (#217092)\n\nRelevant RFC:\nhttps://discourse.llvm.org/t/rfc-address-spaces-support-in-lldb/91222/\n\nAdd an end to end test using a mock accelerator that advertises multiple\naddress spaces.\n\nGitOrigin-RevId: 1b66ee2a70cd85897a006ac00365f936178d38d7\n"
    },
    {
      "commit": "c676c0597db6967bc9db10974c25ca928c91c82a",
      "tree": "036b2abddab1b3c0f53fd028d1e95ff74137d5f7",
      "parents": [
        "2dea44e786ebf08a2e1dee46a6075274d6892b9f"
      ],
      "author": {
        "name": "Yao Qi",
        "email": "yao_qi@apple.com",
        "time": "Wed Sep 16 13:40:38 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 05:50:51 2026 -0700"
      },
      "message": "[lldb][debugserver] Expedite the memory ranges lldb read most recently (#223417)\n\nThe rationale of this change is that if user/ide/lldb reads memory on\nsome address, it more likely to read them again in next stop.  If\ndebugserver expedites the memory of recent reads in public stop, lldb\nwon\u0027t send memory read packet to read them again. Those addresses are\nalready known when the previous stop ends.\n\nExpedite up to 16 memory ranges (at most 512 bytes each) read by `m`,\n`x`, and `MultiMemRead` in `jThreadsInfo` for the stopped thread, and\nadvertise `ExpediteRecentReads+` via `qSupported`. Re-reading a range\nmoves it to the newest slot, and the ring is cleared on exec.\n\nThe gain is large in three use cases:\n- TLS variables. `DynamicLoaderDarwin::GetThreadLocalData` reads the TLS\n  thunk and then calls its `get_addr` in the target, and each such call\n  surfaces as a public stop, in `ProcessEventData::DoOnRemoval`. lldb\n  clears its memory cache at every stop, so the thunk and its data block\n  were read again at each one. Three `frame variable tls_var tls_double`\n  commands on a two-variable test program send 205 memory-read packets\n  before this change and 9 after; the reads at that one call site go\n  from 22 to 2.\n- conditional breakpoints: one every stop, lldb reads the same variables\n  evaluate the condition, and resumes the execution if condition is\n  false.  After this change, these variables are expedited in stop, and\n  lldb doesn\u0027t need to send memory read packets, `x` packet is reduced\n  from 473 to 432.\n- pointer-chase reads. Printing an Objective-C object reads the isa\n  pointer, then walks the class and its method lists, in\n  `ClassDescriptorV2::method_list_t::Read` and `method_t::ReadNames`.\n  None of that is on the stack that the frame 0 expedite covers. A `po`\n  of one object sends 387 memory-read packets before and 368 after.\n\nAssisted-by: claude\nGitOrigin-RevId: 77aa4b9ac117acfcd7384166cccd4a333829bf81\n"
    },
    {
      "commit": "2dea44e786ebf08a2e1dee46a6075274d6892b9f",
      "tree": "a40ea56989c92ef39f45a4da99335e586f351c88",
      "parents": [
        "5f781297ee45db29438e82512096488e27dd9824"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 16 12:52:35 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 05:05:19 2026 -0700"
      },
      "message": "[lldb][windows] support long path in loaded modules cache (#206117)\n\n`NativeProcessWindows::CacheLoadedModules` truncates paths longer than\n260 characters.\n\nThis patch changes how modules are resolved:\n\n- Query the untruncated image path with `GetModuleFileNameExW`.\n- Canonicalize it through a handle to the image file with\n`GetFinalPathNameByHandleW(FILE_NAME_NORMALIZED | VOLUME_NAME_DOS)`.\n- Strip the extended length prefixes so the cached path matches the\nordinary Win32 form lldb produces elsewhere.\n\nGitOrigin-RevId: 8167678860e17c5c20aaaf0f863ef70861b3b9f1\n"
    },
    {
      "commit": "5f781297ee45db29438e82512096488e27dd9824",
      "tree": "8ce5a6eca954660459a22885fe2a052a6b06c477",
      "parents": [
        "f3252cce90bf5409c72be4a2b793bf2ef08bbbf8"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 16 11:34:53 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 03:46:49 2026 -0700"
      },
      "message": "[lldb][Windows] Support AF_UNIX domain sockets (#205618)\n\nEnable the Windows `AF_UNIX` domain-socket support added in #205864 by\nflipping the `#if LLDB_ENABLE_POSIX` guards to `#if LLDB_ENABLE_POSIX ||\ndefined(_WIN32)`.\n\nAlso updates `SocketTest.cpp` to exercise `ProtocolUnixDomain` on\nWindows (while still excluding ProtocolUnixAbstract, which has no\nWindows equivalent).\n\nThis is part of a longer set of patches to fix tests on\n`LLDB_USE_LLDB_SERVER\u003d1`.\n\nGitOrigin-RevId: e5fa11f89ebe04877fdab1d5b1274a771e760ae5\n"
    },
    {
      "commit": "f3252cce90bf5409c72be4a2b793bf2ef08bbbf8",
      "tree": "1b549a6aaeae7718539c87da42fcbcce341baad0",
      "parents": [
        "a34815189aa7b4fa35c242d43460bdf96c691a04"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 16 10:45:14 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 02:52:28 2026 -0700"
      },
      "message": "[lldb] Look up register set children by their own name too (#223857)\n\nOn Windows x86_64, LLDB\u0027s register tables only list the full width\nregisters, so the ABI adds the sub-registers itself and puts them in a\nseparate \"supplementary registers\" set. That set contains `sp`, but\nlooking up `sp` in it failed: the lookup first turns `sp` into `rsp`,\nand `rsp` is in the general purpose set, not this one. Linux doesn\u0027t hit\nthis because its tables already define the sub-registers next to `rsp`.\n\nNow the lookup falls back to matching the name as written against the\nregisters of that set, so a register you can reach with\n`GetChildAtIndex` can also be found by name. Lookups that already worked\nare unchanged.\n\nFixes https://ci-external.swift.org/job/lldb-windows/job/main/3879/\n\nGitOrigin-RevId: 91d09ca8162338ab5cccd7f199275db9805b95bd\n"
    },
    {
      "commit": "a34815189aa7b4fa35c242d43460bdf96c691a04",
      "tree": "dcf685ba7ef83b5549ee1b2c02e0f4103c73c1da",
      "parents": [
        "f42ab529849fe3908761ac9c6cd2ac76b7dcb9d2"
      ],
      "author": {
        "name": "Charles Zablit",
        "email": "c_zablit@apple.com",
        "time": "Wed Sep 16 10:15:15 2026 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 02:24:35 2026 -0700"
      },
      "message": "[lldb][cmake] Accept config-mode packages in add_optional_dependency (#222976)\n\n`add_optional_dependency` copies the caller-supplied `\u003cfound\u003e` variable\nafter `find_package`, and callers name the Find module\u0027s result\nvariable, which is usually all-caps (`LIBXML2_FOUND`, `CURSES_FOUND`). A\npackage located in config mode only sets `\u003cPackageName\u003e_FOUND`\n(`LibXml2_FOUND`), so the copy comes back empty and the dependency is\nreported as missing and silently disabled even though `find_package`\nsucceeded.\n\nSet the result variable to TRUE when either `${found}` or\n`${package}_FOUND` is set, FALSE otherwise.\n\nBehavior for module-mode finds is unchanged; only the config-mode case,\nwhich previously always evaluated to false, is affected.\n\nGitOrigin-RevId: 327153dcd71bbec2fa827b84fa513c7c6cf88ce0\n"
    },
    {
      "commit": "f42ab529849fe3908761ac9c6cd2ac76b7dcb9d2",
      "tree": "9b29e4d752a87b0ea457d54e99284cf187b2161d",
      "parents": [
        "af28fa1004bc62097ea8b715cc47e59a0fb6d6e5"
      ],
      "author": {
        "name": "Anutosh Bhat",
        "email": "andersonbhat491@gmail.com",
        "time": "Wed Sep 16 12:47:07 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Sep 16 00:24:41 2026 -0700"
      },
      "message": "[lldb] Support building lldbHost under Emscripten (#223206)\n\nThis builds on the new `HostInfoEmscripten` and `PlatformEmscripten`\nsupport.\n\nEmscripten provides many POSIX APIs, but it does not support `fork` or\nnative host process management. This patch allows `lldbHost` to build\nunder Emscripten without treating it as Linux.\n\nIt:\n\n- avoids building the `ProcessLauncherPosixFork` implementation;\n- adds a small Emscripten Host implementation;\n- reports process enumeration, process lookup, launching and shell\nexpansion as unsupported.\n\nThe remaining generic POSIX Host functionality continues to be used.\n\nThis is enough for the current libLLDB and SB API experiment, while live\nprocess debugging will be handled separately once we have an in-browser\nexecution backend.\n\nGitOrigin-RevId: 1c1edc2d34e181ac8cdd5aa81e218464e1e2a642\n"
    },
    {
      "commit": "af28fa1004bc62097ea8b715cc47e59a0fb6d6e5",
      "tree": "ca5be6c792bdc2a920d11e4db4233fd42e944f34",
      "parents": [
        "61a2b021919d7ed70f6d013111454c10f1abb156"
      ],
      "author": {
        "name": "Anutosh Bhat",
        "email": "andersonbhat491@gmail.com",
        "time": "Wed Sep 16 11:15:07 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 22:53:05 2026 -0700"
      },
      "message": "[lldb] Add PlatformEmscripten (#223200)\n\nThis follows #223169, where I introduced `HostInfoEmscripten`.\n\nWhile getting libLLDB and its SB API working in the browser, I initially used `PlatformLinux` as the host platform under Emscripten. That was enough for the first experiment, but Emscripten is not really Linux and we shouldn\u0027t keep inheriting Linux-specific behavior going forward.\n\nThis patch introduces a separate `PlatformEmscripten`, based on `PlatformPOSIX`, and makes it the host platform when LLDB itself is running under Emscripten.\n\nFor now, it:\n\n- reports the Emscripten host architecture;\n- supports `wasm32` and `wasm64` Emscripten targets;\n- moves Emscripten host initialization out of `PlatformLinux`;\n- does not claim that live process debugging works yet.\n\n`PlatformWasm` remains separate. My understanding is that `PlatformEmscripten` describes the environment in which LLDB itself is running, while `PlatformWasm` describes the WebAssembly program being\ndebugged.\n\nI am keeping this patch small on purpose. Browser-specific launching, attachment and live execution can be added separately once we connect LLDB to an actual in-browser execution backend.\n\nI added a small test confirming that an Emscripten triple selects this platform, and also compiled the new plugin source successfully with Emscripten 6.0.8.\n\nGitOrigin-RevId: 862885765ac2d854ec5ec1ed38f422f99414688e\n"
    },
    {
      "commit": "61a2b021919d7ed70f6d013111454c10f1abb156",
      "tree": "5714a98d97010a76ac25fc78e3594ca20d37fe47",
      "parents": [
        "6e999456a5b1d13f240a4709aa04ba64e5f19d15"
      ],
      "author": {
        "name": "Anutosh Bhat",
        "email": "andersonbhat491@gmail.com",
        "time": "Wed Sep 16 10:59:44 2026 +0530"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Sep 15 22:33:22 2026 -0700"
      },
      "message": "[lldb] Add HostInfoEmscripten (#223169)\n\nEmscripten currently selects `HostInfoLinux`. That was useful as an initial bootstrap, but it also introduces Linux-specific assumptions such as `/proc/self/exe`, invoking `lsb_releas`e through `popen`, and\nLinux-specific architecture handling.\n\nThis patch introduces a small `HostInfoEmscripten` implementation derived from `HostInfoPosix` and selects it when LLDB is built with Emscripten.\n\nThe implementation intentionally remains minimal. A browser-hosted LLDB process does not currently have a meaningful native executable path, so `GetProgramFileSpec()` returns an empty FileSpec.\n\nA dedicated PlatformEmscripten and browser-specific process behavior will be handled separately so this change remains atomic !\n\nGitOrigin-RevId: 78bbf2229d2a5b8dc84b1b2b83cab9c2239a47ba\n"
    }
  ],
  "next": "6e999456a5b1d13f240a4709aa04ba64e5f19d15"
}
