用gcc编译时如何增加默认栈的大小啊
答案:2 悬赏:80 手机版
解决时间 2021-03-06 23:27
- 提问者网友:遁入空寂
- 2021-03-06 15:55
用gcc编译时如何增加默认栈的大小啊
最佳答案
- 五星知识达人网友:青尢
- 2021-03-06 16:44
您好,很高兴为您解答:
栈的大小不是编译时决定的,所以不能在编译时增加它的大小。
可以用setrlimit()来增加栈的大小。
如果我的回答没帮助到您,请继续追问。
栈的大小不是编译时决定的,所以不能在编译时增加它的大小。
可以用setrlimit()来增加栈的大小。
如果我的回答没帮助到您,请继续追问。
全部回答
- 1楼网友:舍身薄凉客
- 2021-03-06 18:09
gcc的一个编译选项:-fstack-protector,以下是关于这个选项的描述:
-fstack-protector
启用该选项后编译器会产生额外的代码来检测缓冲区溢出,例如栈溢出攻击。这是通过在有缺陷的函数中添加一个保护变量来实现的。这包括会调用到alloca的函数,以及具有超过8个字节缓冲区的函数。当执行到这样的函数时,保护变量会得到初始化,而函数退出时会检测保护变量。如果检测失败,会输出一个错误信息并退出程序。
!注意:在ubuntu 6.10以及之后的版本中,如果编译时没有指定-fno-fstack-protector, -nostdlib或者-ffreestanding选项的话,那么这个选项对于c,c++,objc,objc++语言默认是启用的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯