gpt4 book ai didi

ios - LLDB 命令 : 'fr v var' vs 'p var'

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:09:31 25 4
gpt4 key购买 nike

我是 LLDB 的新手并尝试熟悉 official website 中的那些命令.
我对 fr v barp bar 的功能感到困惑。
正如您从网站上看到的那样,它们被描述为“显示局部变量“bar”的内容”并放在同一个地方。但是当我在Xcode 4.6.4中真正使用它们时,有一些差异吗?

(lldb) fr v self
(FGPLoginViewController *const) self = 0x07566350
(lldb) p self
(FGPLoginViewController *) $0 = 0x07566350
(lldb) fr v self.initCount
error: "self" is a pointer and . was used to attempt to access "initCount". Did you mean "self->initCount"?
(lldb) p self.initCount
(NSInteger) $1 = 0

initCount 是 FGPLoginViewController 的一个 NSInteger 属性。
我的问题是 fr v barp bar 之间的真正区别是什么?

最佳答案

区别(据我所知)是 frame variable 仅用于打印变量的内容,而print表达式 -- 并且可以计算任意 C 和 Objective-C 表达式

在您的示例中,self.initCount[self initCount] 的属性语法。为了评估该表达式,调试器编译它并在应用。

另一个例子:p 2+3 计算总和并打印结果,但是 fr v 2+3 给出一条错误消息。

另一方面,frame variable 有更多选项来显示变量。例如,fr v -r "app.*" 显示所有以“app”开头的变量。你不能这样做使用 print 命令。

总结:frame variable 用于变量,print(或expr)用于表达式。在一个变量的情况下,它们都同样有效。

关于ios - LLDB 命令 : 'fr v var' vs 'p var' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17656071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com