必威体育Betway必威体育官网
当前位置:首页 > IT技术

段(segment)

时间:2019-06-17 03:43:13来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

segment

在GDB调试中,经常会出现SIGSEGV(段错误),首先来了解一下什么是段。


对于C文件,编译后形成的二进制文件包括的内容与操作系统有关。Unix/Linux用的是ELF格式,DOS下是COFF格式,这些格式不尽相同,但是都有一个共同的概念—–段。

bluephantom@bluephantom-Vostro-5568:~/文档$ size a.out
   text    data     bss     dec     hex filename
   2105     624       8    2737     ab1 a.out

段是指二进制文件内的区域,很多信息存储在内。可以通过size(MinGW的Command)查看各个段的大小,text段(正文段,用于存储指令),data(数据段,存储已初始化的全局变量),BSS段(存储未赋值的全局变量)。

对于调用栈,它是在运行时创建,称为堆栈段。堆栈段也有自己的大小,不能被越界访问,否则会出现段错误。(栈溢出)

因此,可以说,段错误很大程度是越界,过大!

在Linux,通过ulimit指定,ulimit -a:查看栈的大小;还可以进行修改。

在Windows,栈的大小存储在可执行文件中。

它们都可以在编译的时候通过gcc进行修改。

相关阅读

segment fault问题原因分析

点击打开链接segment fault类的错误本质原因就是程序访问了非法的地址:1.引用空指针2.野指针3.访问越界造成的原因有多种:主观原因:1

当我们谈论“细分”(segmentation)的时候我们在谈论什么

关键词(Key words):细分(segmentation),客户细分(customer segmentation),市场细分(market segmentation),客户肖像(persona),市场定位(Market

分享到:

栏目导航

推荐阅读

热门阅读