尝试运行我正在开发的 iOS 应用程序时出现以下错误:
appname(6097,0x3e835d98) malloc: *** error for object 0x20104600: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
如何找出free()
生成此错误的调用?如果我为 添加断点malloc_error_break
,我得到的整个堆栈跟踪是对 " malloc_error_break
" 的调用,如下所示:
libsystem_c.dylib`malloc_error_break:
0x32f20fa8: push {r7, lr} < Thread 1: breakpoint 1.1
0x32f20faa: mov r7, sp
0x32f20fac: nop
0x32f20fae: nop
0x32f20fb0: pop {r7, pc}
0x32f20fb2: nop
如果我不为 添加断点malloc_error_break
,我会得到一个同样无用的堆栈跟踪,但这次只有一个__pthread_kill
和一个汇编指令。
我还能做些什么来更好地了解生成此错误的代码吗?