gpt4 book ai didi

c - Unix 上的段错误 - 可能的堆栈损坏

转载 作者:太空狗 更新时间:2023-10-29 16:05:04 25 4
gpt4 key购买 nike

我正在查看来自在 Unix 中运行的进程的核心。通常我可以解决问题并深入回溯以尝试识别内存问题。在这种情况下,我不确定如何进行。

首先,回溯只给出了 3 帧,而我期望更多。对于那些框架,所有呈现的功能参数似乎完全无效。没有我所期望的。

一些指针参数有以下关联 - 无法访问地址处的内存

这是否表明某种完整的堆栈损坏。我使用 libumem 运行该过程,所有缓冲区都被报告为干净。

umem_status 也没有报告任何内容。

所以基本上我被难住了。可能的原因是什么?由于 libumem 似乎没有报告任何错误,我应该在代码中寻找什么。

关于如何进一步调试有什么建议吗?我应该考虑 mdb 中的任何额外功能吗?

谢谢。

最佳答案

堆栈损坏听起来确实有可能。一些尝试:

  • 尽可能打开所有编译器警告!
  • 运行 lint!
  • 如果可能,请尝试在内置了大量内存损坏检测功能的 OpenBSD 上构建和测试您的程序。
  • 如果可能,使用 ProPolice、StackGuard 等工具。
  • 如果您可以轻松地重现此问题,则值得在调试器中试一试。尽可能缩小范围,然后逐步解决。

关于c - Unix 上的段错误 - 可能的堆栈损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591457/

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