如何找到最大堆栈大小?

时间:2011-09-24 00:02:27

标签: linux ubuntu stack

我正在研究Ubuntu 11.04。如何找出进程的最大调用堆栈大小以及堆栈每帧的大小?

5 个答案:

答案 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脚本或任何其他可返回系统调用结果的可执行脚本。