如何在调试控制台中打印Objective-C块的地址?

如何在调试控制台中打印Objective-C块的地址?,objective-c,block,Objective C,Block,调用块时,我可以通过在调试控制台中执行“po block”来打印其地址。如何打印我当前所在的块的地址(即,当调试器在块中遇到断点时) 请注意,该块可以是匿名块。我还没有测试过这一点,但您可以使用&&获取标签的地址,因此您可以在任何块(命名或其他)中执行类似操作: block_start: // Some code NSLog(@"Block at 0x%p", &&block_start); 键入frame variable将列出帧中的所有参数和局部变量及其值

调用块时,我可以通过在调试控制台中执行“po block”来打印其地址。如何打印我当前所在的块的地址(即,当调试器在块中遇到断点时)


请注意,该块可以是匿名块。

我还没有测试过这一点,但您可以使用
&&
获取标签的地址,因此您可以在任何块(命名或其他)中执行类似操作:

block_start:
    // Some code

    NSLog(@"Block at 0x%p", &&block_start);

键入
frame variable
将列出帧中的所有参数和局部变量及其值,在执行块时,这些值包括指向块对象本身的指针,作为名为
.block\u descriptor
的条目。指针的值(指针指向的块对象的地址)打印在其旁边。如果您愿意,您可以在该地址上执行
po


我还没有找到在调试器中单独使用此
.block\u描述符的方法(例如,它不被接受为有效表达式)。

是否要识别当前块以进行调试?如果是这样的话,
\uuuu函数\uuuu
宏会有一个唯一的名称,我相信。@trojanfoe谢谢-当代码在块内时,我想在调试控制台或NSLog中“po”块地址。