我注意到,在ubuntu 12.04 x64中,所有程序都将堆栈段映射到虚拟地址范围,如:
7fff0f59b000-7fff0f5bc000 rw-p 00000000 00:00 0 [stack]
自0xbc000 - 0x9b000 = 0x21000 = 135168以来,大小 远小于ulimit -s(8192KB)
给出的值 你可以告诉我为什么吗?堆栈段会自动增长到8MB限制吗?提前谢谢。答案 0 :(得分:0)
我找到了原因。 ulimit -s只是上限,而不是堆栈的初始提交虚拟内存。它会成长。但我不知道如何实现这一目标。只是“sub rsp,size; mov [rsp],imm”不起作用。