gpt4 book ai didi

c - 总线错误在 gdb 中消失

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

我有一个用 C 编写的大型程序,它编译得很好,但是当我运行它时 (./a.out) 我得到:总线错误 10!我使用 gdb 调试器来跟踪内存错误,但奇怪的是程序在 gdb 中正常完成。这种行为可以以某种方式解释吗?我现在要如何调试我的代码?

最佳答案

在某些操作系统上,gdb 会以不同方式加载程序。我知道在 MacOS 上 gdb 会禁用一些地址空间布局随机化,这会改变共享库的重定位方式。在某些操作系统上,gdb 将加载比正常程序执行更多的部分或加载具有更广泛权限的部分(不可执行的内存可能在 gdb 下可执行,或者只读将变为可写)。

最好的办法是捕获问题的核心转储并从那里继续调试。 Valgrind 也擅长捕获此类错误。

关于c - 总线错误在 gdb 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12457355/

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