我有一个 C++ 的 Android NDK 项目。客户提示间歇性的、不可重现的故障。我怀疑某处存在内存损坏错误。我已经有了 malloc 屏障;现在我想检查堆栈是否损坏。
GCC 的 -fstack-protector 对我来说听起来太极端了;当它检测到错误时,它只会终止程序;我想要一些更用户友好的东西(一条消息,然后杀死 :))。问题 - 有没有办法在 GCC 下实现程序员控制下的堆栈一致性检查器?我不介意内联汇编。
例如,一些公开堆栈帧结构的预定义宏会派上用场。
最佳答案
查看此问题的最上面的答案,关于为什么 stack-protecter
用于加固,而不是调试:When and how to use GCC's stack protection feature?
关于c++ - DIY堆栈保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5568218/