如何在命令行应用程序中检测堆栈溢出.在macos上用C++编写

How can I detect stack overflow in a command line app. written in C++ on macos?

本文关键字:macos 栈溢出 上用 C++ 编写 堆栈 检测 命令行 应用程序      更新时间:2023-10-16

我有一个xcode项目,代码是C++。我已经在递归函数中指出了程序行为不正常、堆栈中有太多东西的原因。。。我习惯于确定问题是堆栈溢出恢复坏东西并设置堆栈溢出陷阱。我该怎么做?

现在我已经为clang找到了"-fstack protector all",但我不知道一旦prog会发生什么。已运行。我还找到了"-fsanitize=",但我不知道在"="后面写什么。

谢谢。

没有确定的方法来查找堆栈溢出。您可以尝试在堆栈顶部放置一些"MAGIC"值的最佳方法是,在每次新方法调用时,检查该"MAGIC"值是否仍在以前的值中,并且没有被溢出。