我花了相当一段时间试图追踪这个问题,并从其他人那里读取多个相同问题的建议。我处理一个庞大的代码库,因此在没有提示的情况下查找问题就像在干草堆中寻找针。如何追查“释放对象的错误校验和”
关于我读的建议是在* malloc_error_break *上添加一个断点 - 但我该怎么做。我知道我必须添加一个符号断点,但我不确定在两个文本字段Symbol和Module中输入什么内容?
我试图启用Malloc Scribble和Malloc Guard Edges - 但没有一个会导致任何断点或崩溃。
如果我启用僵尸对象,程序停止崩溃,但输出日志中没有任何内容显示任何问题。
最后我试图启用Guard Malloc。据我所知,只有模拟器中工作,所以我试图说 - 但问题是,这些程序在启动阶段执行崩溃在我的程序中的任何行之前:
0x958e0cd4 <+0000> mov 0x4(%esp),%eax
0x958e0cd8 <+0004> mov %gs:0x0(,%eax,4),%eax < Crash
0x958e0ce0 <+0012> ret
和调用堆栈看起来是这样的:
pthread_getspecific
__dyld__dyld_start
我不知道我在做什么错在这里?
symbol ='malloc_error_break'模块在大多数情况下不需要定义。 – justin