【发布时间】:2019-09-17 23:15:24
【问题描述】:
看来我的程序(使用 mingw g++ 构建)由于堆栈内存不足而崩溃。我使用编译选项-Wl,--stack,64000000 来增加堆栈限制,但问题仍然存在。我想知道是否有实用程序或方法来检查我的.exe 程序的当前堆栈限制,以便我可以验证限制确实更改为该值。
【问题讨论】:
-
到目前为止您尝试过什么?必须有一种方法可以检查 PE 可执行文件(我不熟悉 Windows 环境)。对于 ELF,合适的工具是
readelf、nm、objdump等(参见 stackoverflow.com/questions/32542041/…)。另外,请注意,您可能会遇到其他一些堆栈限制约束,因为它不是可执行文件的属性,而是环境(OS、shell 等)的属性。在使用bash的unix 系统上,可以调用ulimit -s来获取当前堆栈大小限制。最后,您使用的是 GNU 链接器吗?
标签: gcc stack mingw exe stack-size