参考了论坛大神们的帖子,造了个轮子:
一行代码获取Block的签名和虚拟内存地址:
NSString *blockDescription = [ZLJBlockPrinter printBlock:_shareBlock];
NSLog(@"%@",blockDescription);
效果:
打印调用栈虚拟地址:
NSString *stack = [ZLJPrinter callStackSymbolsLocateInImages:@[@“execName”]];//这里写需要打印的镜像名
NSLog(@"%@",stack);
示例:
7 ...
8 CoreFoundation 0x0000000181528434 32058D87-5C5D-3117-BF4C-D547EC3AA6FF + 525364 symFileAddr 0x1803c8434
9 ...
复制0x1803c8434,可直接在ida里跳转
代码GitHub点这里,喜欢的话给我点个小星星哦
参考文章:http://iosre.com/t/block/6779