make
当我运行时(从任何有或没有 makefile 的目录),我得到以下信息:
(gdb) run
Starting program: /usr/bin/make
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff73050ca in strlen () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff73050ca in strlen () from /usr/lib/libc.so.6
#1 0x00007ffff7304dfe in strdup () from /usr/lib/libc.so.6
#2 0x0000000000418d89 in xstrdup ()
#3 0x0000000000423c33 in define_variable_in_set ()
#4 0x000000000040737b in main ()
我使用 创建了容器lxc-create -n $name -t /usr/share/lxc/templates/lxc-archlinux
。几个月前我制作的多个容器也存在同样的问题(make
段错误),但其他方面运行正常(make
我第一次制作它们时运行正常)。
输出lxc-checkconfig
仅显示缺少以下内容,我相信几个月前一切正常时也存在这种情况:
User namespace: missing
checkpoint restore: missing
它运行在最新的 x86 arch linux 服务器中。出了什么问题/我该如何调试它?
编辑:这个错误在几次会话中消失了 10 分钟,而且我设法编译了我想要编译的东西,但现在它又出现了段错误。
答案1
一个错误make 4.1
ttyname()
与返回 NULL相关,例如当/dev/pts
未在 chroot/container 中安装时,会导致这些症状。感谢make
开发人员 Paul D. Smith 修复了此问题和Debian 维护者 Manoj Srivastava 对此进行了诊断。
答案2
尝试通过执行重新安装 base-devel
pacman -Syu base-devel
否则,重新安装...