oc混编c出现malloc错误或者signal SIABRT等错误

解决iOS应用崩溃问题

说起来虽然不是那么频繁的看博客,但是看到有许多问题都无法找到解决方法,还是记录一下一些问题,以备不时之需。以下正文


制成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单位保证不发生错误。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值