LLDB是否有便利变量($ var)?

an0*_*an0 44 lldb

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

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

an0*_*an0 51

我终于弄明白了.help expr在LLDB中运行,您将看到:

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

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

  • 有谁知道是否有一个函数可以在会话期间列出以这种方式定义的任何变量?那会非常方便。像“expr list”之类的东西... (2认同)

esc*_*ord 23

我今天很挣扎.以下是在LLDB中处理Objective-C变量的样子:

expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication]
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow]
Run Code Online (Sandbox Code Playgroud)

我发现如果你没有嵌套任何调用,LLDB最有效,并且你在每次调用时都明确给出了返回类型.

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


joh*_*doe 7

只需使用表格:

(lldb) expr var
Run Code Online (Sandbox Code Playgroud)

从他们的教程:

(lldb) expr self
$0 = (SKTGraphicView *) 0x0000000100135430
(lldb) expr self = 0x00
$1 = (SKTGraphicView *) 0x0000000000000000
Run Code Online (Sandbox Code Playgroud)

你也可以调用函数:

(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
Run Code Online (Sandbox Code Playgroud)