Como descobrir quais parâmetros / argumentos um programa está passando quando chama outros programas?

2

Estou usando um programa chamado get_iplayer e, durante a execução, ele chama outros programas, como RMTPdump, flvstreamer e ffmpeg.

O que eu gostaria de descobrir é que informações estão sendo passadas para esses programas. Eu posso ver no terminal que eles foram chamados e estão trabalhando, mas não consigo ver o que eles receberam.

    
por Geesh_SO 21.11.2012 / 01:59

1 resposta

1

No Linux, use strace para registrar o execve() syscall.

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

No Windows, use Process Monitor - ative apenas a categoria "Processos". (precisa de privilégios de administrador.)

Em BSDs ... as edições seriam bem-vindas. Parece que dtrace é o caminho normal, pelo menos em alguns deles:

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