我有一个冻结的二进制文件,而该二进制文件恰好是我的包管理器,阻止我安装任何新包。
在gdb下运行,我可以在进程冻结时得到回溯,我得到:
#0 0xb6cd9abc in syscall () from /lib/libc.so.6
#1 0xb60a99b0 in startParsing () from /usr/lib/libexpat.so.1
所以看起来 expat 正在做一个永远不会返回的系统调用。
我是否有一种“低级”的方式来了解有关该系统调用的更多信息?我想安装 strace,但由于这是我的包管理器失败,我不能轻易地将 strace 安装到机器上。
CPU 是 arm,使得下载现成的二进制文件稍微复杂一些。
假设您已安装 strace:
strace /path/to/binary
编辑:我没有读到最后一点说你没有 strace,你应该能够下载一个 strace tarball 并在不使用包管理器的情况下构建它。如果您没有安装构建工具,您可以在另一台机器上静态构建它并复制它。