如何增加 Solaris 上使用 scons 构建的可执行文件的堆栈大小?
我正在使用 scons 并尝试编译一个需要更大堆栈大小的程序,但我不知道如何扩展堆栈大小。这是在Solaris机器上,我们使用scons来编译我们的项目。
有人知道该怎么做吗?
I am working with scons and am trying to compile a program that require bigger stack size but I dont know how to extend the stack size. This is on a solaris machine, and we use scons to compile our projects.
Anyone know how to do this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在执行程序之前,您可以在 shell(ksh 示例)中使用
ulimit -s
。您可能需要提升权限才能更改它。您还可以以编程方式使用
setrlimit
,但从手册页来看,它不会调整当前正在运行的进程,因此它可能对您的需求没有帮助。还要考虑您的程序需要更大的堆栈大小。有没有办法改变你的设计,使其更加堆栈友好? Solaris 默认值似乎是 10M,这是一个相当大的堆栈。
In the shell (ksh example) prior to executing your program you can use
ulimit -s <size in kbytes>
. You may need elevated privileges to change it.You can also use
setrlimit
programmatically but from the man page it won't adjust the currently running process so it's probably not helpful for your needs.Also consider what about your program needs the larger stack size. Is there a way you can change your design to be more stack friendly? The Solaris default seems to be 10M which is a fairly large stack.