如何使用xcode评估LLVM调试器中的块?

时间:2014-02-20 13:03:52

标签: xcode debugging block llvm

我有一个名为myBlock的块。

我在myBlock创建后设置了一个断点。在控制台中,我输入

  p myBlock(@"5")

我得到的只是错误

 error: called object type '__block_literal_generic *' is not a function or function pointer
 error: 1 errors parsing expression

那么,可以在调试器控制台的块中进行评估吗?

PS: 更多代码

NSArray * array = @[@"a", @"b"] ;

BOOL (^myBlock)(NSString *) = ^BOOL(NSString * string)
    {
        return [string isEqualToString:@"hello"] ;
    } ;

// The breakpoint is here

for (NSString * str in array)
{
    myBlock(str) ;
}

1 个答案:

答案 0 :(得分:2)

您似乎必须将变量显式转换为块类型:

(lldb) p ( (BOOL(^)(NSString *)) myBlock )(@"hello")
(BOOL) $3 = YES
(lldb) p ( (BOOL(^)(NSString *)) myBlock )(@"world")
(BOOL) $4 = NO