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