47

LLDB 是否有便利变量?如果是这样,我该如何使用它们?如果没有,我可以使用类似的东西吗?

参考: http: //software.intel.com/sites/products/documentation/hpc/atom/application/debugger/commands143.html

4

3 回答 3

57

我终于自己弄清楚了。help expr在 LLDB 中运行,你会看到:

用户定义变量:您可以定义自己的变量以方便使用或在后续表达式中使用。您定义它们的方式与在 C 中定义变量的方式相同。如果用户定义变量的第一个字符是 $,则该变量的值将在未来的表达式中可用,否则它将仅在当前表达式中可用。

expr int $foo = 5想要的也是如此。

于 2013-02-11T05:21:47.913 回答
28

我今天为此苦苦挣扎。下面是在 LLDB 中处理 Objective-C 变量的样子:

expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication]
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow]

等等。我发现如果你不嵌套任何调用,LLDB 效果最好,并且你在每次调用时明确地给出返回类型。

不过,当我稍后尝试initWithFrame:在 UIView 上工作时,我仍然遇到分段错误。:/

于 2013-02-13T22:27:39.213 回答
8

只需使用以下表格:

(lldb) expr var

从他们的教程

(lldb) expr self
$0 = (SKTGraphicView *) 0x0000000100135430
(lldb) expr self = 0x00
$1 = (SKTGraphicView *) 0x0000000000000000

您还可以调用函数:

(lldb) expr (int) printf ("I have a pointer 0x%llx.\n", self)
$2 = (int) 22
I have a pointer 0x0.
(lldb) expr self = $0
$4 = (SKTGraphicView *) 0x0000000100135430
于 2012-07-30T14:14:18.280 回答