【发布时间】:2012-06-26 21:30:14
【问题描述】:
LLDB 有convenience variables 吗?如果是这样,我该如何使用它们?如果没有,我可以使用类似的东西吗?
【问题讨论】:
-
我没有看到任何证据表明它确实如此。它的网站是lldb.llvm.org,他们有邮件列表,也许你可以直接问维护者。
标签: lldb
LLDB 有convenience variables 吗?如果是这样,我该如何使用它们?如果没有,我可以使用类似的东西吗?
【问题讨论】:
标签: lldb
我终于自己弄明白了。在 LLDB 中运行help expr,你会看到:
用户定义的变量: 为方便起见,您可以定义自己的变量或在后续表达式中使用。 您定义它们的方式与在 C 中定义变量的方式相同。如果 您的用户定义变量是 $,那么该变量的值将在未来可用 表达式,否则它只会在当前表达式中可用。
所以expr int $foo = 5是我想要的。
【讨论】:
expr list...
我今天为此苦苦挣扎。下面是在 LLDB 中处理 Objective-C 变量的样子:
expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication]
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow]
等等。我发现如果你不嵌套任何调用,LLDB 效果最好,并且你在每个调用中明确地给出一个返回类型。
当我稍后尝试让initWithFrame: 在 UIView 上工作时,我仍然遇到分段错误。 :/
【讨论】:
只需使用表格:
(lldb) expr var
来自他们的tutorial:
(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
【讨论】: