cc1plus:内部编译器错误:分段错误

cc1plus: internal compiler error: Segmentation fault

提问人:Leapfrog 提问时间:11/9/2023 更新时间:11/9/2023 访问量:38

问:

cc1plus崩溃,出现以下错误:。 我想知道为什么当计算机有足够的 RAM 时会发生这种情况。我不认为这是 g++ 的错误,因为重新启动计算机后可以通过编译。 以下是我的主人的信息。internal compiler error: Segmentation fault

$ gcc --version
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ free -m
              total        used        free      shared  buff/cache   available
Mem:          62137        3275       55193        1608        3668       56460
Swap:           975         401         574

$ dmesg
[55342.444777] cc1plus[22036]: segfault at 3f5a5cfa6e70 ip 0000000000df4cff sp 00007ffe92d48d60 error 4 in cc1plus[400000+180d000]
[55342.444789] Code: 18 85 f6 0f 88 c1 48 7b ff 83 fe 01 48 89 fb 0f 85 03 48 7b ff 48 85 ff 74 16 8b 57 04 85 d2 74 0f 48 8b 47 18 48 85 c0 74 06 <66> 83 38 03 74 0b 48 83 c4 18 48 89 d8 5b 5d c3 90 83 ea 01 48 63
[57864.997815] ThreadPoolForeg[33416]: segfault at 5549025e409e ip 000055fbf82d388c sp 00007fdd27be01b0 error 4 in code[55fbf6543000+70a6000]
[57864.997826] Code: 01 48 8b 5d b0 4c 89 ad a8 fe ff ff 4c 89 e8 0f b7 48 02 ff c9 66 89 48 02 0f b7 c9 48 c1 e1 04 48 8b 74 08 10 48 8b 44 08 18 <0f> b7 4e fe 66 83 f9 01 77 14 48 8d 4e f8 48 81 e1 00 00 fe ff 48
[57886.041612] traps: make[34363] general protection fault ip:55b6bc81e9b3 sp:7ffffd12f7f0 error:0 in make[55b6bc800000+34000]

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"
  • g++ 是否有限制其内存使用的配置?
  • 如何调试g++的段故障问题?
gcc 器错误 g++ 编译器优化

评论

1赞 n. m. could be an AI 11/9/2023
根据定义,内部编译器错误是编译器错误的表现形式。
3赞 ks1322 11/9/2023
输出中有几个段错误,即保护错误。这可能表明您的 RAM 有问题。尝试使用 memtest 检查它。dmesg
1赞 n. m. could be an AI 11/9/2023
“重新启动计算机后编译可以通过” 有些错误每次都会重现,有些则不会。没关系,bug就是bug。没有回旋余地。崩溃的程序有一个错误。除非是硬件错误。
2赞 Peter Cordes 11/9/2023
从可启动的 USB 运行 memtest86+。(在另一台计算机上准备 U 盘;这台计算机的 RAM 可能坏了,所以你要避免在 Ubuntu 安装中写入,以防你损坏了文件系统数据。我认为 Ubuntu 打包了 memtest86+ / mt86plus,并且可能仍然将其包含在他们的安装媒体中,因此如果您有备份,您也可以冒险通过 apt-get 安装它。/boot

答: 暂无答案