Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 有没有办法知道哪个对象收到了objc_释放消息?_Objective C_Macos_Memory Management_Exc Bad Access - Fatal编程技术网

Objective c 有没有办法知道哪个对象收到了objc_释放消息?

Objective c 有没有办法知道哪个对象收到了objc_释放消息?,objective-c,macos,memory-management,exc-bad-access,Objective C,Macos,Memory Management,Exc Bad Access,使用EXC\u BAD\u访问获取崩溃,堆栈符号如下所示: po [NSThread callStackSymbols] <_NSCallStackArray 0x608000052c60>( 0 ??? 0x00000001077e66cd 0x0 + 4420691661, 1 Flume-Debug 0x000000010003ee60 main + 0, 2

使用
EXC\u BAD\u访问获取崩溃
,堆栈符号如下所示:

po [NSThread callStackSymbols]
<_NSCallStackArray 0x608000052c60>(
0   ???                                 0x00000001077e66cd 0x0 + 4420691661,
1   Flume-Debug                         0x000000010003ee60 main + 0,
2   libobjc.A.dylib                     0x00007fffdbde90fc _ZN12_GLOBAL__N_119AutoreleasePoolPage11tls_deallocEPv + 110,
3   libsystem_pthread.dylib             0x00007fffdc8eb50f _pthread_tsd_cleanup + 544,
4   libsystem_pthread.dylib             0x00007fffdc8eb249 _pthread_exit + 152,
5   libsystem_pthread.dylib             0x00007fffdc8e9ab6 pthread_sigmask + 0,
6   libsystem_pthread.dylib             0x00007fffdc8e99f7 _pthread_body + 0,
7   libsystem_pthread.dylib             0x00007fffdc8e91fd thread_start + 13
)
这可能吗?因为消息已经发送,并且由于收件人地址错误而导致崩溃。启用
NSZombie
没有帮助-代码在没有其他有用信息的情况下在同一点崩溃


查看和回溯,我是否应该问自己“哪个对象已添加到自动释放池,但已手动/提前解除分配?”以找出问题

不要使用
po[NSThread callStackSymbols]
在调试器中获取回溯,只需使用
bt
。您似乎没有在
objc\u msgSend()
或类似程序中崩溃,因此链接的文章并不直接相关。您是否尝试过使用Zombies模板在仪器中运行,而不是手动启用容易出错的
NSZombie
?除了释放bug后使用之外,您可能还有一个内存粉碎器。你可以试试。我想是启用了NSZombie检测的工具。不幸的是,它没有显示任何内容,让应用程序崩溃。
po [(id)$rdi class]
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x40dedeadbec8).
The process has been returned to the state before expression evaluation.