如何使用xcode计算LLVM调试器中的块?
我有一个名为如何使用xcode计算LLVM调试器中的块?,xcode,debugging,block,llvm,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 那么,是否可以在调试器控制台的块中进行计算? 附言: 更多代码 NSArray * arr
myBlock
的块
我在创建myBlock
之后放置了一个断点。在控制台中,我键入
p myBlock(@"5")
我得到的只是错误
error: called object type '__block_literal_generic *' is not a function or function pointer
error: 1 errors parsing expression
那么,是否可以在调试器控制台的块中进行计算?
附言:
更多代码
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) ;
}
似乎您必须明确地将变量强制转换为块类型:
(lldb) p ( (BOOL(^)(NSString *)) myBlock )(@"hello")
(BOOL) $3 = YES
(lldb) p ( (BOOL(^)(NSString *)) myBlock )(@"world")
(BOOL) $4 = NO