“总线错误”消息是什么意思,它与分段错误有什么不同?
当前回答
这取决于你的操作系统、CPU、编译器以及其他因素。
一般来说,这意味着CPU总线无法完成命令或发生冲突,但这可能意味着一系列事情,具体取决于正在运行的环境和代码。
其他回答
对于我来说,由于没有声明程序集返回到.text部分,我意外触发了“总线错误”。这似乎是显而易见的,但它让我困惑了一段时间。
Eg.
.globl _myGlobal # Allocate a 64-bit global with the value 2
.data
.align 3
_myGlobal:
.quad 2
.globl _main # Main function code
_main:
push %rbp
从数据返回代码时缺少一个文本指令:
_myGlobal:
.quad 2
.text # <- This
.globl _main
_main:
希望这能对某人有所帮助
我在Mac OS X上出现总线错误的原因是我试图在堆栈上分配大约1Mb的内存。这在一个线程中工作得很好,但是当使用openMP时,这会驱动总线错误,因为Mac OS X对于非主线线程有非常有限的堆栈大小。
我相信内核会引发SIGBUS 当应用程序显示数据时 数据总线上的不对中。我认为 那是因为大多数[?现代编译器 对于大多数处理器,垫/对齐 为程序员提供的数据 以前的对准问题(至少) 减轻,因此一个人看不见 这些天SIGBUS太频繁(AFAIK)。
来自:这里
这取决于你的操作系统、CPU、编译器以及其他因素。
一般来说,这意味着CPU总线无法完成命令或发生冲突,但这可能意味着一系列事情,具体取决于正在运行的环境和代码。
在POSIX系统上,当代码页由于某种原因无法换入时,还可以获得SIGBUS信号。
推荐文章
- 在参数数量上重载宏
- 越界访问数组有多危险?
- 'for'循环中的后增量和前增量产生相同的输出
- 如何在父进程退出后使子进程死亡?
- 内存泄漏是否正常?
- Unix列表命令'ls'可以输出数值chmod权限吗?
- 在Unix中,我可以在一个目录中运行'make'而不首先cd'到该目录吗?
- 如何正确比较C中的字符串?
- 为什么这个for循环在某些平台上退出,而在其他平台上不退出?
- 关闭vs关闭套接字?
- 快速unix命令显示文件中间的特定行?
- 如何生成一个核心转储在Linux上的分段错误?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 使用sh shell比较字符串
- 为什么函数指针定义可以使用任意数量的&号或星号* ?