DIY 堆栈保护

DIY stack protection

本文关键字:保护 堆栈 DIY      更新时间:2023-10-16

我在C++有一个Android NDK项目。客户抱怨间歇性、不可重现的故障。我怀疑某处存在内存损坏错误。我已经有一个马洛克屏障;现在我想检查堆栈损坏。

GCC 的 -fstack-protector 对我来说听起来太极端了; 当它检测到错误时,它只会杀死程序;我想要一些更用户友好的东西(一条消息,然后杀死:))。问题 - 有没有办法在 GCC 下实现程序员控制下的堆栈一致性检查器?我不介意内联组装。

例如,一些公开堆栈帧结构的预定义宏会派上用场。

请参阅这个问题的最顶层答案,为什么stack-protecter用于强化而不是调试:何时以及如何使用 GCC 的堆栈保护功能?