【问题标题】:LLDB Target Language - Swift Only Available in XcodeLLDB 目标语言 - Swift 仅在 Xcode 中可用
【发布时间】:2021-02-10 22:27:46
【问题描述】:

当我在 Xcode 中的 Swift 应用程序上使用 LLDB 时(例如通过设置断点),我可以调用

settings set target.language swift

让 LLDB 理解 expression 等命令中的 Swift 代码(以及因此 poprint)。

当我从命令行运行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)。您可以添加您的评论作为答案吗?那我就可以接受了。

标签: swift xcode lldb


【解决方案1】:

您可能在路径上的 /usr/bin/lldb 前面安装了 clang 工具链(包括 lldb)的 brew 或 llvm.org。 clang 工具链不包含 swift 编译器或支持 swift 的 lldb。

运行lldb 将找到安装在您路径上的第一个lldb,这可能是来自home-brew 或llvm.org 的clang。

运行命令xcrun lldb 将始终从您安装的Xcode 中运行该命令。此外,您可以通过 lldb 中的 version 命令的结果来判断。启用 swift 的版本将打印 Apple Swift 版本以及 lldb 版本。铿锵的不会。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2014-10-30
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多