9.3. Monitoramento das chamadas de função da biblioteca da aplicação com ltrace
A ferramenta ltrace
permite monitorar as chamadas de uma aplicação para funções disponíveis em bibliotecas (objetos compartilhados).
No Red Hat Enterprise Linux 8.0, um problema conhecido impede que ltrace
rastreie arquivos executáveis do sistema. Esta limitação não se aplica a arquivos executáveis construídos pelos usuários.
Pré-requisitos
Procedimento
- Identificar as bibliotecas e funções de interesse, se possível.
Iniciar
ltrace
e anexá-lo ao programa.Se o programa que você deseja monitorar não estiver em execução, inicie
ltrace
e especifique program:$ ltrace -f -l library -e function program
Se o programa já estiver em execução, encontrar sua identificação de processo (pid) e anexar
ltrace
a ele:$ ps -C program (...) $ ltrace -f -l library -e function program -ppid
Use as opções
-e
,-f
e-l
para filtrar a saída:-
Forneça os nomes das funções a serem exibidas como function. O
-e function
pode ser usado várias vezes. Se omitido,ltrace
exibe chamadas para todas as funções. -
Em vez de especificar funções, você pode especificar bibliotecas inteiras com o
-l library
opção. Esta opção se comporta de forma semelhante à-e function
opção. -
Se você não quiser rastrear nenhum processo bifurcado ou rosca, deixe de fora a opção
-f
.
Consulte a página ltrace(1)_ manual para mais informações.
-
Forneça os nomes das funções a serem exibidas como function. O
ltrace
exibe as chamadas da biblioteca feitas pela aplicação.Na maioria dos casos, uma aplicação faz um grande número de chamadas e a saída
ltrace
aparece imediatamente, se nenhum filtro for configurado.ltrace
sai quando o programa sai.Para encerrar o monitoramento antes da saída do programa rastreado, pressione
.-
Se
ltrace
iniciou o programa, o programa termina junto comltrace
. -
Se você anexou
ltrace
a um programa já em execução, o programa termina junto comltrace
.
-
Se
Analisar a lista de chamadas da biblioteca feitas pelo aplicativo.
- Se a aplicação falhar, as informações importantes estarão provavelmente no final do registro.
- A saída contém muitas informações desnecessárias. Entretanto, é possível construir um filtro mais preciso e repetir o procedimento.
É vantajoso tanto ver a saída quanto salvá-la em um arquivo. Use o comando tee
para conseguir isso:
$ ltrace ... |& tee your_log_file.log
Recursos adicionais
A página do manual ltrace(1):
$ homem ltrace
- Guia do Usuário do Red Hat Developer Toolset