有没有办法记录程序的特定行为?

有没有办法记录程序的特定行为?

编辑:由于最初的问题太笼统,我将只关注一个程序。

我正在运行该命令libinput-gestures-setup start,该命令捆绑在一起libinput-gestures,它似乎可以工作,但ps没有显示进程启动的记录,并libinput-gestures-setup status表示该程序尚未启动。journalctl不记录任何内容。我希望看到运行命令时发生的所有情况,以便我可以调试它并使其运行。

我在内核 5.9.2、systemd 246.6、util-linux 2.35.2、xorg-server 1.20.9、herbstluftwm 0.8.3 上运行 Arch Linux

答案1

我希望看到运行命令时发生的所有情况,以便我可以调试它并使其运行。

libinput-gestures-setup是一个简单的 Bash 脚本。您只需查看它即可了解它在做什么。要“调试”它,您可以set -x在其开头添加该选项,它将在调试模式下运行整个脚本 - 即每个命令的跟踪及其参数都会打印到标准输出。或者,您可以像这样运行它,而不是编辑它来添加选项:

bash -x libinput-gestures-setup start

答案2

我做出回答是因为我没有足够的声誉来发表评论。无论如何,正如 @thanasisp 所说斯特雷斯命令行。但还有另一个有趣的框架来跟踪软件。它是LTNG和它的图形用户界面巴贝尔跟踪。您可以跟踪内核、c 二进制文件、python 和 java 软件。和这是快速入门教程。

相关内容