小编Gav*_*lau的帖子

如何模拟ARM未对齐内存访问异常?

我正在编写一个跨平台应用程序,该应用程序可在 x86 机器上运行,但在实际 ARM 硬件(Raspberypi 2)上因“总线错误”而崩溃...

[ 4105.019037] Alignment trap: not handling instruction edd37a00 at [<00014218>]
[ 4105.019059] Unhandled fault: alignment exception (0x001) at 0x0002814e
[ 4105.028227] pgd = b736c000
[ 4105.033347] [0002814e] *pgd=3708d835, *pte=335d075f, *ppte=335d0c7f
Run Code Online (Sandbox Code Playgroud)

...但在Qemu中运行没有任何问题。

我运行此命令以在 Qemu 下运行的内核中启用 SIGBUS 信号和通知,但它似乎没有任何效果:

echo 5 > /proc/cpu/alignment[ 2 ]

如何在 Qemu(或其他免费模拟器)中模拟这些错误?我希望能够在 x86 机器上运行的持续集成环境中运行自动化测试,而我无法使用实际的硬件。或者,我可以租用 ARM 服务器,但我想避免这种情况。

稍后编辑以进一步澄清:在真实硬件上导致此问题的指令也在模拟器中执行,它似乎可以工作而不会触发任何异常。

linux arm qemu memory-alignment

3
推荐指数
1
解决办法
1732
查看次数

标签 统计

arm ×1

linux ×1

memory-alignment ×1

qemu ×1