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?
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
alloca()
(and maybe others) can grow the frame dynamically. –
Shingly A quick Google search should reveal some information on this subject.
> ulimit -a # shows the current stack size
ulimit -s
to show the stack size. –
Malaco Values are in kilobytes, except for -t, which is in seconds and -n and -u, which are unscaled values.
-- man pages –
Cosma 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
alloca()
(and maybe others) can grow the frame dynamically. –
Shingly 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.
© 2022 - 2024 — McMap. All rights reserved.