gcc 7 的分段错误而不是 gcc 10?

问题描述 投票:0回答:1

我正在尝试使用 gcc 7 编译代码,其中构建间歇性失败并出现问题:-

x86_64-pc-linux-gnu-g++: internal compiler error: Segmentation fault (program /home/comp/gcc-work/test/lib/ld-linux.so.2)
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.

我在互联网上看到了一些与 gcc 相关的论坛,这可能是因为使用较旧的 gcc 版本,升级到 gcc 10 可能会有所帮助。所以我尝试将 gcc 版本从 gcc7 升级到 gcc 10。我多次启动构建并注意到没有一个构建失败实例与“分段错误”。

我的疑问是:- 如果现有的 GCC(即 gcc7)工具链确实存在问题,那么所有运行的构建都必须失败,对吗?为什么会有不一致的行为?

注意:- 构建不应该一直在同一台机器上运行。我们的基础设施应该从池中挑选随机机器。无论故障是硬件还是工具链,我都无法找到确切的根本原因。

gcc segmentation-fault g++
1个回答
1
投票

如果现有的 GCC(即 gcc7)工具链确实存在问题,

Any

internal compiler error:
always 意味着is 工具链有问题——它告诉你就在那里1

Build 必须在所有运行中都失败,对吧?为什么会有不一致的行为?

不正确。有很多的错误,表现为间歇性失败。

一些例子:

  • heap use free(程序可能崩溃也可能不崩溃取决于
    free
    d内存是否被覆盖)
  • 使用未初始化的指针(程序可能会或可能不会崩溃,具体取决于未初始化的内存是否恰好为零)。

1 我想有些

internal compiler error
可能是由错误的内存触发的,而不是编译器本身的错误,但是这些故障应该仅限于单个主机。

© www.soinside.com 2019 - 2024. All rights reserved.