Empêcher strace d'abréger les arguments?

117

J'essaie d'utiliser strace pour savoir quelles commandes un programme exécute en utilisant execve. Certains des arguments de ces commandes sont assez longs, et strace abrégé les arguments en execve(je vois "..." après environ 30 caractères), m'empêchant d'obtenir des informations utiles. Comment puis-je obtenir le texte intégral de chaque argument?

J'ai lu la page de manuel . L'option -v imprime l'environnement, ce qui est utile, mais les arguments sont toujours tronqués.

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

J'ai également essayé de passer verbose = all, mais cela donne juste des informations supplémentaires sur SIGCHLD.

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

Réponses:

162

Vous voulez que l' option, qui spécifie la longueur maximale d'une chaîne à afficher (la valeur par défaut est 32).-v -s strsize

Matthew Slattery
la source
14
Cela ne fonctionne pas pour les arguments "imbriqués" ou de tableau, par exempleioctl(3, SNDCTL_TMR_TEMPO or TCGETA, {B9600 -opost -isig -icanon -echo ...})
Marki555
8
il a été résolu sur stackoverflow.com/questions/34365928/…
Vladimir Kunschikov
2
Comme un autre utilisateur l'a noté dans un commentaire ici "l'argument -v fonctionne à partir de 4.15 et semble avoir été là depuis le moment de la création du dépôt Git." Vous n'avez donc pas à modifier la source du paquet, -v devrait fonctionner correctement avec les objets imbriqués.
DarkFranX