linux 开发常见问题
zhaoyuping
知行合一,行胜于言
展开
-
Bus error 续二
Linux程序调试--Bus Error(2)我们经常会发现有两种内存转储(core dump)一种是段错误(segment error)通常是在一个非法的地址上进行取值赋值操作造成。一种是总线错误(bus error)通常是指针强制转换,导致CPU读取数据违反了一定的总线规则。下面请大家讨论一下总线错误有例子如下sizeof(int)==4:#includ转载 2013-05-15 18:12:34 · 698 阅读 · 0 评论 -
Bus error 问题原因
在x86+Linux上写的程序,在PC机上运行得很好。可是使用ARM的gcc进行交叉编译,再送到DaVinci目标板上运行的时候,出现了Bus error。出现的位置如下(其中Debug的内容是我在程序中添加的调试信息):root@211.69.193.189:~# arm_v5t_le-gcc -g shit.croot@211.69.193.189:~# ./a.outDe转载 2013-05-08 10:33:37 · 2708 阅读 · 0 评论 -
Bus error 续一
Linux程序调试--Bus ErrorBus Error究竟是指什么一 Bus Error,即总线错误。 引发原因: CPU出于性能方面的考虑,要求对数据进行访问时都必须是地址对齐的。如果发现进行的不是地址对齐的访问,就会发送SIGBUS信号给进程,使进程产生 core dump。RISC包括SPARC(一种微处理器架构)都是这种类型的芯片。x86系列CPU转载 2013-05-15 18:11:12 · 1236 阅读 · 0 评论