如何通过监控堆栈大小来防止堆栈溢出?

c.C*_*hee 5 stack-overflow size monitor

许多C/C++/Fortran和其他程序员都会遇到"堆栈溢出"错误.我的问题是,是否有工具,程序或简单的代码片段,允许我们在程序运行时监视或检查堆栈的大小?这可能有助于确定堆栈的累积位置并最终导致溢出.

swa*_*ohn 1

我不知道是否有一个程序可以为您完成此操作,但您可以轻松地检查函数内部堆栈指针所在的位置(至少在 C 和 C++ 中)。只需查看任何变量的内存位置即可。它不会是确切的位置,但应该在几个字节之内(这适合您的目的),因为局部变量是在堆栈上定义的。如果你想要确切的值,我相信你可以通过组装获得它。

不过,当程序崩溃时,仅查看堆栈跟踪可能会更容易。