检查内存访问是否对齐

check if memory access is aligned

如何检查程序中的所有内存访问是否对齐? valgrind 无法检查它。还有其他工具吗?我可以 运行 虚拟机中的软件并在那里有检查器吗?

背景:我有一个大程序,我知道存在未对齐的内存访问。我试图找到所有这些。我的主要问题是,如果内存访问未对齐,此软件将 运行 使用的硬件将生成硬件异常。

几个月后我找到了两个解决方案。

  1. 为 x86/64 启用对齐检查(更多信息请参见此处 )。但要小心,stdlib 充满了 x86 上的 unalinged mem 访问。

  2. 交叉编译为mips64,使用qemu-mips64调试。