【发布时间】:2021-02-10 22:27:46
【问题描述】:
当我在 Xcode 中的 Swift 应用程序上使用 LLDB 时(例如通过设置断点),我可以调用
settings set target.language swift
让 LLDB 理解 expression 等命令中的 Swift 代码(以及因此 po 和 print)。
当我从命令行运行lldb 并尝试按上述设置目标语言时,我收到错误:
error: invalid language type 'swift', valid values are:
c89
c
c++
c99
objective-c
objective-c++
c++03
c++11
c11
c++14
其他人有同样的问题吗?我该如何解决这个问题?
我正在运行 macOS 10.15.7
【问题讨论】:
-
Xcode 附带的命令行 lldb 使用与 Xcode 完全相同的 LLDB.framework。但是,有两个版本的 lldb 可用,由 llvm.org 托管的版本不支持 swift,另一个托管在 swift 项目的 GitHub 存储库中。您可能已经获得了一个 llvm.org 版本的软件包,该软件包位于您的路径上的 /usr/bin/lldb 前面。从终端运行
lldb --version得到的 lldb 版本是什么? -
还要注意,
xcrun lldb命令将始终运行 Xcode 附带的 lldb,因此即使您周围有其他 lldb,它也会从您的 Xcode 安装中选择一个启用 swift 的。如果xcrun lldb无法识别 swift,请向 Apple 提交错误。 -
@JimIngham 运行
lldb --version打印lldb version 10.0.0。运行xcrun lldb --version打印lldb-1200.0.32.1 <newline> Apple Swift version 5.3 (swiftlang-1200.0.29.2 clang-1200.0.30.1)。您可以添加您的评论作为答案吗?那我就可以接受了。