如何找到最大堆栈大小?

Bru*_*uce 29 linux ubuntu stack

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

fru*_*ose 26

快速谷歌搜索应该揭示有关此主题的一些信息.

> ulimit -a         # shows the current stack size
Run Code Online (Sandbox Code Playgroud)

  • 当然,快速谷歌搜索现在提供此页面. (8认同)
  • ...并且链接已失效。另外,“ulimit -s”显示堆栈大小。 (5认同)

Mar*_*tos 22

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

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

如果你想为正在运行的进程读取这些值,我不知道有任何工具可以执行此操作,但查询/ proc文件系统很容易:

cat /proc/<pid>/limits
Run Code Online (Sandbox Code Playgroud)


cpr*_*ack 16

Maximum stack size in kilobytes:

ulimit -s
Run Code Online (Sandbox Code Playgroud)


sas*_*ang 5

您可以使用getrlimit来查看堆栈大小并对其setrlimit进行更改。

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