我正在研究Ubuntu 11.04。如何找出进程的最大调用堆栈大小以及堆栈每帧的大小?
答案 0 :(得分:25)
快速Google搜索应显示some information on this subject。
> ulimit -a # shows the current stack size
答案 1 :(得分:22)
您可以使用getrlimit
查询最大进程和堆栈大小。堆栈帧没有固定的大小;它取决于每帧需要多少本地数据(即局部变量)。
要在命令行中执行此操作,可以使用ulimit。
如果你想为正在运行的进程读取这些值,我不知道有任何工具可以执行此操作,但查询/ proc文件系统很容易:
cat /proc/<pid>/limits
答案 2 :(得分:16)
最大堆栈大小(以KB为单位):
ulimit -s
答案 3 :(得分:3)
答案 4 :(得分:0)
getrlimit()
和setrlimit()
不是Linux命令。它们是系统调用。
因此,为了获得它们的结果,您需要类似bash脚本或任何其他可返回系统调用结果的可执行脚本。