即使在i386上,是否也可能以某种方式捕获数据对齐错误?也许通过设置一个i386特定的机器寄存器或类似的东西。
在这种情况下,在Solaris Sparc上我会收到SIGBUS,但是在i386上,一切都很好。
环境:
编辑:
这就是为什么我问这个问题:
最佳答案
为了进一步了解Vokuhila-Oliba在“SOF Mis-aligned pointers on x86.”线程上的答案,似乎gcc可以生成内存访问未对齐的代码。 AFAIK您对此没有任何控制权。
对gcc编译后的代码启用对齐检查将不是一个好主意。您可能会因获得良好的C代码而遇到SIGBUS错误。
重新编辑:对不起
关于c++ - 如何在x86上捕获数据对齐错误(在Sparc上又称为SIGBUS),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1929588/