android ndk 编程 加载so文件时SIGILL

       由于代码中使用了try catch等异常处理,本来想要改掉的,可是在ndk-r5下编译出来的时候,没有报错,

而且在htc的几款手机上,全都跑的好好的,一一切ok,就随它去了,没有理会。

      结果有一天, 要在moto xt702(里程碑)上跑,却发现一加载我的动态库,程序就挂了。调式时发现报了SIGILL 非法指令。

反汇编中,看到是某个函数出错了,于是就把这个函数干掉,再调试,发现又错了, 不过转到其他函数上了,这样一个换一个,看来又错。

      换成了r4去重新编译,发现在把o文件链接成so文件的时候有一堆错误, 网上查了支持才知道是lstdc++这个有问题,再参考了下面的文章:

http://wyj.zhuwo.info/2011/01/undefined-reference-to-__cxa_end_cleanup/ :以后,大致认为是在代码中使用了try catch等异常处理。

  

    把代码中所有用到异常处理的地方 统统干掉,再编译一切ok, 加载进来跑, bingo!

 mark:SIGSEGV 倒还容易找,可是出了这个SIGILL纠结。。。

记下来 作备忘。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值