当前位置: 首页 > 面试题库 >

迅速将LLDB中的po

松烨烨
2023-03-14
问题内容

如何在带有LLDB的Swift App中绘制变量的值?

早先就像 po variable_name

现在,我通常会遇到一些讨厌的错误,例如:

(lldb) po a
error: <EXPR>:11:5: error: use of unresolved identifier '$__lldb_injected_self'
    $__lldb_injected_self.$__lldb_wrapped_expr_2(     
    ^

问题答案:

该错误听起来像是因为DWARF没有告诉LLDB在哪里可以找到“自我”对象。鉴于Swift的本质,LLDB需要知道self的类型,以便能够在本地范围内注入表达式。找出这是否是您的问题的一种方法是在LLDB提示符下执行:

(lldb)框架变量-L self

您可能会看不到它的位置。值得提交错误报告,仅用于跟踪您的特定再现案例

无论如何,要解决大部分问题。在Swift中,没有像ObjC这样的语言认可的“打印描述”机制,因此,尽管您可以键入“ po
self”,除非self是Objective-C类型,您几乎会看到与“ p self”相同的内容甚至“帧变量self”会告诉您-
这完全基于LLDB数据格式化程序机制。如果您想了解其中的内容以自定义Swift对象的外观,则必须参考: http
//lldb.llvm.org/varformats.html


 类似资料:
  • 问题内容: 我想要一个数字数组上的函数(或任何可加的事物的有序集合),该函数返回长度相同的数组,其中每个元素是A中所有元素的总和, 直到一个include。 例子: 我可以使用for循环或其他方式执行此操作。还有更多功能选择吗?它有点像reduce,只是它会构建一个包含所有中间值的结果数组。 更通用的是具有可以接受任何序列并提供输入序列的总运行时间的函数。 问题答案: 您正在寻找的通用组合器通常称

  • 问题内容: 迅速有没有通过声明?例如,如果我执行以下操作 案例“一”和案例“二”是否可以执行相同的代码? 问题答案: 是。您可以按照以下方式进行操作: 另外,您可以使用关键字:

  • 问题内容: 如何迅速地建立代表? 问题答案: 它与obj-c没什么不同。首先,您必须在类声明中指定协议,如下所示: 该实现将如下所示: 当然,您必须设置委托。例如:

  • 问题内容: 我已经设置了swift项目来使用sqlite。有时,插入时实际上并没有插入正确(或全部)的值。我知道,因为我重新启动了该应用程序,并且当我再次输入时,输入是随机错误(未插入内容)或为零。但有时是正确的。 这是我设置的位置,是的,插入之前数据正确。 您可以在中间看到注释掉的println,如果没有注释掉,则itemName有时会成为该字符串的一部分。 问题答案: 我有同样的问题。我找到了

  • LLDB 常用调试指令 The LLDB Debugger help 任何命令行工具类的工具都需要这样一个帮助入口, 帮助我们快速熟悉一个新的指令, 使用格式如下: help expression 查看expression的使用介绍 print 可以使用print、prin、pri或者p, 但是不能使用pr, 因为LLDB不能消除和process的歧义 p/po po: 输出值 或者 对象的

  • LLDB 是下一代高性能的调试器,构建一组可重用的组件,覆盖很多 LLVM 项目的库,例如 Clang 表达式解析器和 LLVM 反汇编器。目前该项目还处于前期开发状态,但已经注意支持在 Mac OS X 上的 C/C++ 和 Objective-C 的开发。