Alignment trap: in ARM architecture .


http://gcc.gnu.org/ml/gcc-help/2009-09/msg00134.html


最近工作过程中遇到这个问题: Algnment trap: ....

从下午3:30开始搞,后来找Yaowen,看看,换个思路。第二天回到位置上又开始了,想的是怎么解决,不再像曾经那样,这个有解吗?看来现在的我开始相信是问题就有解决办法了。

回到正题, 主要问题还是字节对齐问题,Cary给我的建议是 int* ,long *之类的强制类型转换要注意一个个的转,我的函数中没有这个,但是又char *的强制类型转换。

搞了半天,又担心时间耗得太久,于是乎,重写这个函数,以前可以执行的就搞过来,其中我做的字符操作注释掉,ok,排除问题,慢慢的找到问题的关键如下:

parse_param_srv(char *srv, IMClientConfig & config)

{

std::string s_srv(srv); //这样编出来的程序在x86上运行时没有问题的,但是到arm上就会出现Alignment trap问题。

}

改为如下就没有问题了。

std::string srv=config.srv;

parse_param_srv(std::string &srv, IMClientConfig & config)

{

}

Alignment trap: im_client (8161) PC=0x400fd990 Instr=0xe5904010 Address=0x000001ab FSR 0x001

Bus error

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱国正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值