如何找出一个程序在调用其他程序时传递了哪些参数/自变量?

如何找出一个程序在调用其他程序时传递了哪些参数/自变量?

我正在使用一个名为获取iplayer,并且在运行过程中调用其他程序如RMTPdump、flvstreamer、ffmpeg等。

我想知道的是它是什么信息通过这些程序。我可以在终端上看到它们已被调用并且正在运行,但我看不到它们被赋予了什么。

答案1

在 Linux 上,用于strace记录execve()系统调用。

strace -f -e execve -o iplayer-trace.log get_iplayer ...

在 Windows 上,使用进程监控– 仅启用“流程”类别。(需要管理员权限。)

在 BSD 上...欢迎编辑。这似乎dtrace是通常的做法,至少在某些方面是这样:

dtrace -n 'proc:::exec-success { printf("%d %s", pid,curpsinfo->pr_psargs); }'

相关内容