Faça sentido desta saída strace

2

Alguém pode entender essa strace de saída?

[pid 25302] read(34, "}B14\n07$06kRb4a^^043k57T3167466", 32) = 32

É de um sistema Linux executando um aplicativo Java via Tomcat. Está tentando ler algo, mas em vez de um nome de arquivo, ele tem essa string estranha. É aqui que acredito que o aplicativo falha e é a única parte que não entendo.

    
por Gregg Leventhal 09.07.2014 / 03:07

1 resposta

5

A chamada de sistema read lê alguns bytes de um arquivo aberto. A “cadeia ímpar” é os bytes que são lidos pela chamada. Esta chamada tenta ler 32 bytes (terceiro parâmetro) e obtém (valor de retorno), a partir do descritor de arquivo 34.

Para descobrir qual arquivo seu aplicativo está lendo, examine o rastreio da chamada do sistema que abre este descritor de arquivo. Isso pode ser open (valor de retorno), pipe (primeiro argumento), socket (valor de retorno) ou alguns outros. O descritor de arquivo também pode ter sido retornado por dup ou dup2 ou dup3 , em Nesse caso, você precisaria rastrear o descritor de arquivo que foi duplicado. Você também pode executar lsof -p 25302 para ver quais arquivos o processo abriu no momento em que você executa o comando lsof , se o processo ainda estiver em execução.

    
por 09.07.2014 / 03:23