如何知道电脑的栈空间大小

发布网友

我来回答

2个回答

热心网友

如果是gcc/linux的可执行文件,先用readelf看:
1、$ readelf -l /bin/ls
2、...
3、 Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
4、...
5、GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
6、...
如果MemSiz为零,则由OS决定栈的大小。
1、$ ulimit -a | grep stack
2、stack size (kbytes, -s) 8192

可以看到OS设定的值是8MB
编译时改变stack大小的方法:
ld --stack=栈尺寸

gcc -Wl,--stack=栈尺寸
例如 gcc -Wl,--stack=0x4000000

热心网友

您好,如果是gcc/linux的可执行文件,先用readelf看:
1、$ readelf -l /bin/ls
2、...
3、 Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
4、...
5、GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x4
6、...
如果MemSiz为零,则由OS决定栈的大小。
1、$ ulimit -a | grep stack
2、stack size (kbytes, -s) 8192

可以看到OS设定的值是8MB
编译时改变stack大小的方法:
ld --stack=栈尺寸

gcc -Wl,--stack=栈尺寸
例如 gcc -Wl,--stack=0x4000000追问我是Windows

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com