前段买了本《C专家编程》确实不错,特别是对内存思考这一章节,(O(∩_∩)O~目前我也只看到这一章节),其中讲到了总线错误和段错误: bus error(core dumped) 总线错误(信息已经转储) segmetation fault(core dumped)段错误(信息已经转储) 这种错误相信只要你在unix用c,c++这两种错误是常见又是很头疼的错误,目前我也遇到段错误的程序,至今未找到错误原因。来看看作者怎么解说的: 产生原因: 当硬件告诉操作系统一个有...
本帖最后由 thelordsaves 于 2012-03-22 22:41 编辑
看到有资料上说,如果访问的地址不满足地址对齐要求会发生总线错误,于是自己写了一个程序测试
#include
用mmap映射两个文件,然后把一个文件的内容复制到另一个文件
采用的是memcpy函数
但是使用这个函数出现了总线错误
我把两个映射的地址和长度都输出来了
请高手给分析一下。
输出结果:
file size = 18
src = 0xb7fa9000
dst = 0xb7fa8000
总线错误
[code]
#include
c专家编程chapter7对内存的思考7.7.1总线错误 一节举例说明了总线错误的一种情况 代码如下 [code]int main(void) { union testUnion { char a[10]; int i; }; union testUnion u; int *p = (int *)(&(u.a[1])); *p = 17; //p未对齐的地址,应该会引发一个总线错误的啊 printf("%d\n", *p); return 0; }[/code] 可是我在gcc下编译通过,运行也没提示总线错误 这是怎么回事呢
FreeBSD在双路Opteron 270上无法稳定运行,会经常panic。 而且编译内核都会出这种怪错: shyfzx# cd /usr/src shyfzx# make buildkernel KERNCONF=GENERIC -------------------------------------------------------------- >>> Kernel build for GENERIC started on Tue Jan 8 19:04:17 GMT 2002 -------------------------------------------------------------- 。。。。。。。。。 ===> if_gre rm -f setdef0.c setdef1.c s...