Eu sei que isso está atrasado alguns anos, mas foi citado como uma resposta para uma pergunta semelhante (fazendo as duas respostas erradas). Embora essa resposta responda mais corretamente à outra pergunta, não consegui encontrar para onde responder.
Você pode descobrir usando strace
. Execute o software ou comando da GUI ou linha de comando do terminal precedido por strace
, por exemplo,
strace gedit
ou
strace ls
Citações de man strace
:
No caso mais simples, strace
executa o comando especificado até sair. Ele intercepta e registra as chamadas do sistema que são chamadas por um processo e os sinais que são recebidos por um processo. O nome de cada chamada do sistema,
seus argumentos e seu valor de retorno são impressos no erro padrão ou no arquivo especificado com a opção -o
.
strace
é uma ferramenta útil de diagnóstico, instrução e depuração. Os administradores de sistema, os diagnosticadores e os especialistas em problemas encontrarão um valor inestimável para resolver problemas com programas para os quais a fonte não é prontamente
disponíveis, pois não precisam ser recompilados para rastreá-los. Alunos, hackers e pessoas excessivamente curiosas descobrirão que muito pode ser aprendido sobre um sistema e seus sistemas rastreando até mesmo programas comuns. E os programadores descobrirão que, como as chamadas e os sinais do sistema são eventos que acontecem na interface do usuário / kernel, um exame minucioso desse limite é muito útil para o isolamento de bugs, verificação de sanidade e tentativa
para capturar condições de corrida.
Cada linha no rastreio contém o nome da chamada do sistema, seguido por seus argumentos entre parênteses e seu valor de retorno. Um exemplo de stracing o comando cat /dev/null
is:
open("/dev/null", O_RDONLY) = 3