Impedir strace de abreviar argumentos?

117

Estou tentando usar o strace para descobrir quais comandos um programa executa usando execve. Alguns dos argumentos nesses comandos são bastante longos, e strace está abreviando os argumentos para execve(vejo "..." após cerca de 30 caracteres), me impedindo de obter qualquer informação útil. Como posso obter o texto completo de cada argumento?

Eu li a página do manual . A opção -v imprime o ambiente, o que é útil, mas os argumentos ainda estão truncados.

strace -f -e trace=execve -v -p 1234

Eu também tentei passar verbose = all, mas isso apenas fornece algumas informações extras sobre SIGCHLD.

strace -f -e verbose=all trace=execve -v -p 1234
Jay Conrod
fonte

Respostas:

162

Você deseja a opção, que especifica o comprimento máximo de uma string a ser exibida (o padrão é 32).-v -s strsize

Matthew Slattery
fonte
14
Isso não funciona para argumentos "aninhados" ou de matriz, por exemploioctl(3, SNDCTL_TMR_TEMPO or TCGETA, {B9600 -opost -isig -icanon -echo ...})
Marki555
8
foi resolvido em stackoverflow.com/questions/34365928/…
Vladimir Kunschikov
2
Como outro usuário observou em um comentário aqui "o argumento -v funciona a partir de 4.15 e parece estar lá desde o tempo de criação do repositório Git." Portanto, você não precisa alterar a fonte do pacote, -v deve funcionar bem com objetos aninhados.
DarkFranX de