调查为什么安装的二进制文件挂起

时间:2018-09-19 18:36:25

标签: linux

我在Linux机器上安装了一个软件包。当我运行安装的二进制文件时,它会挂起:

$installedBinary --help

应该返回命令行选项列表。而是,程序挂起并且不响应。当我运行control + c时,它将关闭。

如何调查此问题?

2 个答案:

答案 0 :(得分:4)

strace -ffo traces ./installedBinary --help开始。然后检查traces.*日志文件,尤其是最后一行可能显示其被阻止内容的行。参见strace(1)

您也可以从htop开始。找到被阻止的线程,然后按s表示strace,按l表示lsof

答案 1 :(得分:0)

Maxim Egorushkin's answer是不错的选择。但是在Linux上,大多数程序都有一些文档(通常至少有一个man页,请参见man(1)man(7)),并且大多数程序是免费软件。而且文档应该比--help提供更多信息(--help的输出是文档的简短 summary ;例如,sed(1)解释了 lot 个多于sed --help)。也许您的程序的行为已在文档中进行了说明(例如,取决于某些环境变量)。

因此,您还应该阅读installedBinary的文档,您可能可以获取其源代码,进行研究和重新编译。如果您拥有源代码并已构建它,则通常可以使用DWARF调试信息进行编译(例如,将-g添加到CFLAGS中的某些Makefile中...)和gdb下的run it

请注意,即使在Linux上,您也可能拥有malware(例如,对于Debian或Ubuntu,您可能已经找到了.deb来源,用于发布恶意软件;这不太可能,但并非不可能)。信任二进制包提供者是一个社会问题,而不是技术问题。您的installedBinary(原则上)可能足以使您陷入困境。但这可能是一些executable

也许您的installedBinary总是 在等待其标准输入(这种行为可能是不寻常的,但不是被禁止的)或来自其他来源的某些输入。然后,您可以尝试installedBinary < /dev/null甚至installedBinary --help < /dev/null