开发者

How do I find the maximum stack size?

I am working on Ubuntu 11.04. How do I find out the maximum call stack size of a process and also the size开发者_JAVA技巧 of each frame of the stack?


A quick Google search should reveal some information on this subject.

> ulimit -a         # shows the current stack size


You can query the maximum process and stack sizes using getrlimit. Stack frames don't have a fixed size; it depends on how much local data (i.e., local variables) each frame needs.

To do this on the command-line, you can use ulimit.

If you want to read these values for a running process, I don't know of any tool that does this, but it's easy enough to query the /proc filesystem:

cat /proc/<pid>/limits


The following call to ulimit returns the maximum stack size in kibibytes (210 = 1024 bytes):

ulimit -s


You can use getrlimit to see the stack size and setrlimit to change it.

There's an example in the Increase stack size in Linux with setrlimit post.


getrlimit() and setrlimit() are not Linux commands. They are system calls.

So in order to get the result of them, you need something like a bash script or any other executable script that returns the result of the system call.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜