Linux系统出现bus error错误

本文探讨了在使用memtester工具对DDR进行压力测试时遇到的“Buserror”问题。通过调整内存申请大小,从200M减少到50M,成功解决了错误并使测试得以正常执行。文章还解释了Linux平台下malloc()行为与SIGBUS信号的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用memtester工具对DDR进行压力测试时,出现了一下的报错:

# memtester 200M 1
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 200MB (209715200 bytes)
got  200MB (209715200 bytes), trying mlock ...locked.
Loop 1/1:
  Stuck Address       : testing   0Bus error

也就是最后显示的“Bus error”,刚巧,不就之前在我这块Linux系统的ARM板子上使用benchmark测试的时候也出现了“Bus error”的错误,一时没有找到什么原因。网上对这个错误有很多的说法,其中有一个观点是:Linux平台上执行malloc(),如果没有足够的RAM,Linux不是让malloc()失败返回,而是向当前进程分发SIGBUS信号。所以我怀疑是memtester申请的内存太大了(200M),所以我改为:memtester 50M 1。就能正常执行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值