linux – `ls`导致特定目录上的Segmentation Fault

前端之家收集整理的这篇文章主要介绍了linux – `ls`导致特定目录上的Segmentation Fault前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用$HOME / .local作为前缀来安装一些没有root访问权限的应用程序. $HOME / .local中有一个目录,我无法执行ls命令:
[tuananh@server lib]$ls
Segmentation fault
[tuananh@server lib]$cd ..
[tuananh@server .local]$ls lib
audit                    libform.a         
libncurses.a             libopenblas.so.0
...
[tuananh@server .local]$

可能是什么原因? uname -a我的服务器:

Linux server 2.6.32-358.2.1.el6.x86_64 #1 SMP Tue Mar 12 14:18:09 CDT 2013 x86_64 x86_64 x86_64 GNU/Linux

编辑:LD_TRACE_LOADED_OBJECTS = 1 ls的输出.我发现从这个目录加载了一些库.那么现在我应该怎么做才能找到引起问题的那个?

linux-vdso.so.1 =>  (0x00007fff831b8000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003d94800000)
librt.so.1 (0x00007fdcde5a3000)
libcap.so.2 => /lib64/libcap.so.2 (0x0000003d95c00000)
libacl.so.1 => /lib64/libacl.so.1 (0x0000003d97c00000)
libc.so.6 (0x00007fdcde1f5000)
libdl.so.2 (0x00007fdcddff1000)
/lib64/ld-linux-x86-64.so.2 (0x0000003d92c00000)
libpthread.so.0 (0x00007fdcdddd3000)
libattr.so.1 => /lib64/libattr.so.1 (0x0000003d96800000)

解决方法

当你在那里执行一个命令并且它与系统中的命令不兼容时,你很可能在那里安装了一些加载而不是系统库.这可能与glibc左右有关.

您可以通过运行LD_TRACE_LOADED_OBJECTS = 1 ls并检查输出来确认它是否包含当前目录中的任何文件.

猜你在找的Linux相关文章