所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,
他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位
包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这
张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运
行级别还有内存粒度等等的信息。一旦一个程序发生了越界访问,cpu就会产生相应的异常保护,于
是segmentation fault就出现了。
posted on 2011-03-20 16:32
chatler 阅读(687)
评论(0) 编辑 收藏 引用 所属分类:
Linux_Coding