我如何find最大堆栈大小?

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

Solutions Collecting From Web of "我如何find最大堆栈大小?"

您可以使用getrlimit查询最大进程和堆栈大小。 堆栈帧没有固定的大小; 这取决于每个帧需要多少局部数据(即局部变量)。

要在命令行上执行此操作,可以使用ulimit。

如果你想读取正在运行的进程的这些值,我不知道有这样的工具,但很容易查询/ proc文件系统:

 cat /proc/<pid>/limits 

快速谷歌搜索应该揭示这个问题的一些信息 。

 > ulimit -a # shows the current stack size 

以千字节为单位的最大堆栈大小:

 ulimit -s 

您可以使用getrlimit来查看堆栈大小和setrlimit来更改它。

Linux中使用setrlimit post 增加堆栈大小有一个例子。