alibaba / arthas

Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
https://arthas.aliyun.com/
Apache License 2.0
35.52k stars 7.46k forks source link

docker使用的是musl C库,arthas的vmtool运行报错 #2921

Open kevinbbjj opened 5 days ago

kevinbbjj commented 5 days ago

vmtool --action getInstances --className java.lang.String --limit 10 报错 vmtool error: /tmp/ArthasJniLibrary5353081237739333147.tmp: libstdc++.so.6: cannot open shared object file: No such file or directory

ldd libArthasJniLibrary-x64.so 报错 /lib/ld-musl-x86_64.so.1 (0x7ff1ab04f000) Error loading shared library libstdc++.so.6: No such file or directory (needed by libArthasJniLibrary-x64.so) libc.so.6 => /lib/ld-musl-x86_64.so.1 (0x7ff1ab04f000) Error relocating libArthasJniLibrary-x64.so: _ZNSt8ios_base4InitC1Ev: symbol not found Error relocating libArthasJniLibrary-x64.so: _ZNSt8ios_base4InitD1Ev: symbol not found

lxyyouxiang123 commented 4 days ago

出现错误信息 "libstdc++.so.6: cannot open shared object file: No such file or directory" 通常意味着你的系统中缺少 libstdc++.so.6 这个库文件,或者库文件的版本不满足运行时的需求。这个库是 GCC(GNU Compiler Collection)的一部分,提供了 C++ 标准库的实现。

当你使用 ldd 命令检查一个共享库时,如果出现 "Error loading shared library libstdc++.so.6: No such file or directory (needed by ...)" 的错误,这表明你的系统中没有找到所需的 libstdc++.so.6 库,或者库的版本不符合要求。

解决这个问题通常有以下几个步骤:

确认系统中已安装 libstdc++6 库:你可以通过包管理器安装或更新这个库。例如,在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令安装:

sudo apt-get update sudo apt-get install libstdc++6 如果你使用的是其他 Linux 发行版,如 Fedora 或 CentOS,可以使用相应的包管理器(如 dnf 或 yum)来安装。

检查库文件的版本:如果库文件存在但版本不满足要求,你可能需要安装一个更新版本的 GCC。可以通过编译安装 GCC 的最新版本或使用你的包管理器提供的版本来更新 libstdc++6 库。