gpt4 book ai didi

c - 机器之间堆栈粉碎行为不同的原因

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:16 24 4
gpt4 key购买 nike

我们正在尝试追踪某些生成的代码中的一些堆栈粉碎错误。问题是堆栈粉碎错误不是 100% 确定的,只发生在一台机器上而不是其他机器上。行为差异可能有哪些原因?

我们正在使用堆栈保护器标志运行 gcc。

最佳答案

尝试使用 Valgrind

Memcheck: a memory error detector

如果涉及线程和时间,它可能会在罕见或不可预测的情况下发生。我见过多线程代码在 100 次中有 99 次工作......然后失败了。如果幸运的话,这只是一个一直发生但只是偶尔会产生后果的堆栈覆盖错误。

Ptrcheck: an experimental heap, stack and global array overrun detector

-fstack-protector + valgrind ==> stack array overflow debugging?

您可以尝试使用 gcc-fstack-protector-all 选项启用堆栈金丝雀。

关于c - 机器之间堆栈粉碎行为不同的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6136707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com