Swift 5.8 in Xcode (warnings about a mismatch between the compiler and debugger)

Because of the issues debugging async code that seem to be much improved in Swift 5.8, I'm trying to do my daily building and debugging with the Swift 5.8 toolchain for Xcode.

While it can't build for iOS ("Undefined symbols for architecture arm64: "___isPlatformVersionAtLeast""), it does build and run my Vapor app. And I can inspect variables in the Xcode variables pane! Hallelujah!

But I get a warning when I stop at my first breakpoint: "warning: AppTests was compiled with a different Swift compiler (version '0') than the Swift compiler integrated into LLDB (version '5.7.2.135'). Swift expression evaluation requires a matching compiler and debugger from the same toolchain."

And if I try to Print Description (contextual menu item on a variable), I get a huge dump of variations on "Cannot load Swift type information: AST validation error in "AppTests": The module file format is too new to be used by this version of the debugger" (and for every module dependency). Then it goes ahead and prints the variable value.

So, all in all, it's much more useful, but it seems the toolchain (or Xcode) is missing something, particularly when it comes to building for iOS. Should I file a bug with Swift? Apple?

1 Like

This is fixed in nightly 5.8 toolchains dated 2/9 (possibly earlier) or later.