说起来虽然不是那么频繁的看博客,但是看到有许多问题都无法找到解决方法,还是记录一下一些问题,以备不时之需。以下正文
制成SDK给客户接了出了许许多多问题,这个问题尤为严重,不是出现signal SIABRT就是Thread 1: breakpoint 1.1或者EXC_BAD_ACCESS,EXC_ARM_BREAKPOINT。找不到原因,添加Symbolic断点,添加僵尸都无法解决。Baidu、Google、stackoverflow了半天,都没有相关的问题,这个问题有的地方是随机发生,但如果用link工程再debug则不会发生,十分奇怪。
初期错误点有些定位在malloc上,我认为是c的malloc()再free()出现了和oc的定义问题,遂改为alloca(),然后没有发生这个问题,本来就此解决了,但是却发生在iOS7的真机上始终崩溃的问题。然后考虑到检测的机子是4s,32位系统,可能和数据类型的大小有关,但检查了一下char字符都是1字节,不过提供了一个方向给我,我将所有malloc,alloca生成的size扩大化,7上能成功执行,也没有发生错误,至此解决了这个问题,最后重新补了一下底层问题,char *数组在读取到\0时退出,而我只给char
*赋予了正好塞下我需要内容的大小,导致\0无法填入导致地址分配可能重叠产生此项错误,以后所有char *分配空间均应多分配1单位保证不发生错误。