您的位置:首页 > 运维架构 > Linux

linux内核定位方法总结2 Alignment异常

2017-12-29 23:05 267 查看
Alignment异常官方的意思是非字节对齐导致。

做了一个实验,发现并没有异常

以PPC为例

char buf = (char )malloc(100);

int buf1 = (int )(buf + 3);

* buf1 = 0x55aa55aa;

反汇编也没有发现异常。

查了一下 ppc e500mc系列的手册描述如下几种指令非4字节对齐会导致错误:

浮点运算指令;

乘法指令;

内存同步指令;

cache锁存指令

一种场景是 一个buffer地址从硬件获取之后(地址没有对齐),然后进程内存同步该地址异常。异常的数据放在DEAR寄存群里面。

一个ARM数据访问异常反汇编定位的案例

ARM Linux内核驱动异常定位方法分析–反汇编方式

http://blog.csdn.net/zhangchiytu/article/details/8297271
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息