Reputation: 35213
I am working on Ubuntu 11.04. How do I find out the maximum call stack size of a process and also the size of each frame of the stack?
Upvotes: 42
Views: 86015
Reputation: 19100
The following call to ulimit
returns the maximum stack size in kibibytes (210 = 1024 bytes):
ulimit -s
Upvotes: 26
Reputation: 41
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.
Upvotes: 4
Reputation: 1320
A quick Google search should reveal some information on this subject.
> ulimit -a # shows the current stack size
Upvotes: 36
Reputation: 185862
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
Upvotes: 32
Reputation: 12184
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.
Upvotes: 5