LLDB 是否有便利变量?如果是这样,我该如何使用它们?如果没有,我可以使用类似的东西吗?
参考: http: //software.intel.com/sites/products/documentation/hpc/atom/application/debugger/commands143.html
LLDB 是否有便利变量?如果是这样,我该如何使用它们?如果没有,我可以使用类似的东西吗?
参考: http: //software.intel.com/sites/products/documentation/hpc/atom/application/debugger/commands143.html
我终于自己弄清楚了。help expr
在 LLDB 中运行,你会看到:
用户定义变量:您可以定义自己的变量以方便使用或在后续表达式中使用。您定义它们的方式与在 C 中定义变量的方式相同。如果用户定义变量的第一个字符是 $,则该变量的值将在未来的表达式中可用,否则它将仅在当前表达式中可用。
我expr int $foo = 5
想要的也是如此。
我今天为此苦苦挣扎。下面是在 LLDB 中处理 Objective-C 变量的样子:
expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication]
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow]
等等。我发现如果你不嵌套任何调用,LLDB 效果最好,并且你在每次调用时明确地给出返回类型。
不过,当我稍后尝试initWithFrame:
在 UIView 上工作时,我仍然遇到分段错误。:/
只需使用以下表格:
(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