【发布时间】:2018-07-13 08:58:21
【问题描述】:
如何检查程序中的所有内存访问是否对齐? valgrind 无法检查它。还有其他工具吗?我可以在 vm 中运行该软件并在那里有一个检查器吗?
背景:我有一个大程序,我知道存在未对齐的 mem 访问。我试图找到所有这些。我的主要问题是,如果内存访问未对齐,运行此软件的硬件将产生硬件异常。
【问题讨论】:
标签: exception memory runtime valgrind
如何检查程序中的所有内存访问是否对齐? valgrind 无法检查它。还有其他工具吗?我可以在 vm 中运行该软件并在那里有一个检查器吗?
背景:我有一个大程序,我知道存在未对齐的 mem 访问。我试图找到所有这些。我的主要问题是,如果内存访问未对齐,运行此软件的硬件将产生硬件异常。
【问题讨论】:
标签: exception memory runtime valgrind
几个月后,我找到了两个解决方案。
为 x86/64 启用对齐检查(更多信息请参见此处https://stackoverflow.com/a/17748435/3748215)。但要小心,stdlib 充满了 x86 上的 unalinged mem 访问。
交叉编译到 mips64 并使用 qemu-mips64 进行调试。
【讨论】: