Как узнать, какие параметры / аргументы программа передает при вызове других программ?
Я использую программу с именем get_iplayer, и во время работы она вызывает другие программы, такие как RMTPdump, flvstreamer и ffmpeg.
Я хотел бы узнать, какую информацию он передает в эту программу. На терминале я вижу, что им звонили и они работают, но не вижу, что им дали.
1 ответ
Решение
В Linux используйте strace
войти execve()
Системный вызов.
strace -f -e execve -o iplayer-trace.log get_iplayer ...
В Windows используйте Process Monitor - включите только категорию "Процессы". (Требуются права администратора.)
На BSD... изменения будут приветствоваться. Кажется, что dtrace
Это обычный способ, по крайней мере, в некоторых из них:
dtrace -n 'proc:::exec-success { printf("%d %s", pid,curpsinfo->pr_psargs); }'