在 CentOS 上“调试 AppImage”通常分几种情况,取决于你想调试什么层次:
chmod +x xxx.AppImage
./xxx.AppImage
常见错误:
FUSE not founderror while loading shared librariesGLIBCXX not found报错示例:
fusermount not found
解决:
sudo yum install fuse fuse-libs
sudo modprobe fuse
或不使用 FUSE 直接解包运行:
./xxx.AppImage --appimage-extract
cd squashfs-root
./AppRun
CentOS 7 很常见(GLIBC 2.17)
查看依赖:
ldd ./xxx.AppImage
若提示缺库:
yum provides '*libxxx.so*'
yum install xxx
./xxx.AppImage --appimage-extract
cd squashfs-root
然后:
gdb ./AppRun
# 或
strace ./AppRun
./xxx.AppImage --appimage-extract-and-run
env | grep APPIMAGE
./xxx.AppImage --appimage-help
./xxx.AppImage --version
查看内部文件:
./xxx.AppImage --appimage-mount
strace -f ./xxx.AppImage
ltrace ./xxx.AppImage
gdb --args ./xxx.AppImage
(gdb) run
若程序崩溃:
bt
| CentOS | 问题 |
|---|---|
| 7 | GLIBC / GCC 太老 |
| 8 | 基本可用 |
| Stream | 推荐 |
如果你愿意,可以告诉我:
我可以给你更精确的调试方案。