1
sumanx 2013-03-26 12:52:48 +08:00
开启Zombie Enabled,如果找不到,就一段一段的屏蔽可能相关的dealloc。
一般是声明一个retain的property,结果赋值的时候没用self.xxx = yyy而是用了xxx = yyy导致的。 如果没用用arc,看有没有在dealloc里手误导致释放什么变量多释放了一次。。 |
2
alexrezit 2013-03-26 12:56:01 +08:00
pointer 木有搞清楚吧... =.=
|
3
notedit OP @sumanx 使用了arc dealloc里也没有释放 是一些private的变量 然后传给其他的模块 然后就会出现这种情况 而且比较随机
|
5
sumanx 2013-03-26 13:27:32 +08:00 1
@notedit 用了arc,你得用retain的property来保存别的函数要用到的变量,不然如果你在a函数中给它赋值,a一执行结束,那个变量就被释放了,别处一使用就exc_bad_access
|
6
sumanx 2013-03-26 13:28:16 +08:00
前面说的是对象。
|
7
yadizzz 2013-03-26 13:30:11 +08:00
挂个全局断点,一crash就断到代码行了,无非就是野指针什么的问题
|
9
ydhydh 2013-03-26 13:35:00 +08:00
时好时坏 ,多线程?
|
10
doskoi 2013-03-26 13:36:08 +08:00 1
EXC_BAD_ACCESS 肯定是memory management的问题
不是zombile就是leak instruments一般都能抓到 |
11
notedit OP @sumanx 如果我这边变量是private的呢 这种情况该怎么处理 我现在的做法是 在传递给另一个模块的时候把这个变量copy 一下 可以解决我的问题 但不知道是不是好的方法
|
13
alexrezit 2013-03-26 16:04:09 +08:00 1
|
14
qdvictory 2013-03-27 12:49:19 +08:00 2
这种错误大多数情况下都是野指针造成的,不用的指针置nil是一个很好的习惯。
|
15
feihu 2013-03-27 12:54:05 +08:00
malloc_history
|