如何知道.exe程序的堆栈大小限制?

时间:2019-04-29 10:31:39

标签: gcc stack mingw exe stack-size

似乎我的程序(使用mingw g++构建)由于堆栈内存不足而崩溃。我使用编译选项-Wl,--stack,64000000来增加堆栈限制,但是问题仍然存在。我想知道是否存在实用程序或方法来检查我的.exe程序的当前堆栈限制,因此我可以验证限制确实更改为该值。

1 个答案:

答案 0 :(得分:1)

从此 answer,要检查堆栈大小,您需要安装 Visual Studio 并使用 Visual Studio 工具 dumpbin。通常有一个脚本可以运行,以在路径中显示带有所有 Visual Studio 工具的命令提示符窗口,这是 vcvarsall.bat 或“VS 2019 的 x64 Native Tools 命令提示符”(或类似的东西)从开始菜单.

运行

dumpbin /headers executable.exe

这将返回一个长输出。在该输出中,查找 OPTIONAL HEADER VALUES 并且在该部分中将有一个 size of stack reserve 。默认堆栈大小写为 100000,即 0x100000,即 1 兆字节。

您可以使用同样由 Visual Studio 提供的 editbin 更改可执行文件的堆栈大小。