我有一个冻结的二进制文件,而该二进制文件恰好是我的包管理器,阻止我安装任何新包。
在 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的,这使得下载现成的二进制文件稍微复杂一些。
答案1
假设您安装了 strace:
strace /path/to/binary
编辑:我没有读到最后一点,它说你没有 strace,你应该能够下载 strace tarball 并在不使用包管理器的情况下构建它。如果您没有安装构建工具,您可以在另一台计算机上静态构建它并复制它。