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?
相关问题
- Is shmid returned by shmget() unique across proces
- Why doesn't php sleep work in the windows-subs
- how to get running process information in java?
- Installing Pydev for Eclipse throws error
- Error building gcc 4.8.3 from source: libstdc++.so
You can use
getrlimit
to see the stack size andsetrlimit
to change it.There's an example in the Increase stack size in Linux with setrlimit post.
getrlimit()
andsetrlimit()
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.
Maximum stack size in kilobytes:
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:
A quick Google search should reveal some information on this subject.