什么是巴士错误?

“总线错误”消息的含义是什么,它与段错误有什么不同?


总线错误现在很少见于x86,并且在处理器甚至无法尝试请求的内存访问时发生,通常是:

  • 使用处理器指令的地址不符合其对齐要求。
  • 访问不属于您的进程的内存时会发生分段错误,这些错误非常常见,通常是以下原因造成的:

  • 使用指向已被释放的东西的指针。
  • 使用未初始化的伪指针。
  • 使用空指针。
  • 溢出缓冲区。
  • PS:更确切地说,这不是操纵指针本身,它会导致问题,它访问它指向的内存(解引用)。


    段错误正在访问您不允许访问的内存。 它是只读的,你没有权限等等...

    总线错误试图访问不可能存在的内存。 您使用的地址对系统而言毫无意义,或者该操作的地址类型不正确。


    当应用程序在数据总线上出现数据错位时,我相信内核会引发SIGBUS。 我认为,由于大多数处理器的现代编译器为程序员填充/对齐数据,所以至少(经过)缓解了对齐问题,因此最近没有人经常看到SIGBUS(AFAIK)。

    从这里

    链接地址: http://www.djcxy.com/p/35369.html

    上一篇: What is a bus error?

    下一篇: internal compiler error: Bus error