Nightly Toolchain has broken LLDB support on macOS

Solution in case anyone is interested:

  1. Install the nightly toolchain
  2. create a entitlements.xml with
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
	<true/>
        <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
        <true/>
        <key>com.apple.security.cs.disable-library-validation</key>
        <true/>
    <key>com.apple.security.get-task-allow</key>
    <true/>
</dict>
</plist>
  1. cp /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2021-10-27-a.xctoolchain/System/Library/PrivateFrameworks/LLDB.framework/Versions/A/Resources/repl_swift .
  2. Create a code sign certificate following Install Gdb Mac: Setup gdb on macOS in 2020 - DEV Community 👩‍💻👨‍💻
  3. codesign --entitlements entitlements.xml -fs <cert name> repl_swift
  4. sudo cp repl_swift /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2021-10-27-a.xctoolchain/System/Library/PrivateFrameworks/LLDB.framework/Versions/A/Resources/repl_swift

Now the REPL should work.

2 Likes