查看Linux系统栈空间大小

如果是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

点赞