为什么LLDB不能打印IBAction的发件人参数?

时间:2014-02-20 17:35:07

标签: objective-c xcode xcode5 lldb

我试图在方法内的断点处打印发件人。我的方法有这个签名:

- (IBAction)purchaseButtonTapped:(id)sender

当我的程序遇到该方法中的断点时,我将po sender键入lldb,我得到了这个:

error: use of undeclared identifier 'sender'
error: 1 errors parsing expression

我使用的任何其他ppoc命令都没有问题。如果我NSLog我的发件人,例如NSLog(@"%@", sender);它会毫无问题地打印我的UIButton对象。这是lldb中的一个错误,还是因为编码了几个小时我的大脑变成了无生命的熔岩,我看不到明显的东西?

1 个答案:

答案 0 :(得分:2)

在发布版本中,如果方法不使用sender参数,则编译器不会在调试符号表中为其创建条目。所以你不能在调试器中po sender。如果您知道参数是如何传递的(在哪个寄存器或堆栈中的哪个位置),您可以这样打印。

在调试版本中,您应始终能够po sender