DIY堆栈保护

发布于 2024-10-31 08:24:34 字数 260 浏览 2 评论 0原文

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

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

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

I have a Android NDK project in C++. Customers are complaining of intermittent, irreproducible glitches. I suspect a memory corruption bug somewhere. I already have a malloc barrier; now I want to check for stack corruption.

GCC's -fstack-protector sounds too extreme to me; when it detects a bug, it just kills the program; I want something more user-friendly (a message, THEN kill :)). Question - is there a way to implement, under GCC, a stack consistency checker under programmer's control? I don't mind inline assembly.

Some predefined macros that expose the stack frame structure, for example, would come in handy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忘你却要生生世世 2024-11-07 08:24:34

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

See the top-most answer to this question, on why stack-protecter is for hardening, and not debugging: When and how to use GCC's stack protection feature?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文