Не позволять strace сокращать аргументы?

117

Я пытаюсь использовать strace, чтобы узнать, какие команды выполняет программа, используя execve . Некоторые из аргументов в этих командах довольно длинные, и strace сокращает их до execve(я вижу "..." примерно через 30 символов), что не позволяет мне получить какую-либо полезную информацию. Как я могу получить полный текст каждого аргумента?

Я прочитал справочную страницу . Параметр -v печатает среду, что полезно, но аргументы по-прежнему усекаются.

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

Я также пробовал передать verbose = all, но это просто дает дополнительную информацию о SIGCHLD.

strace -f -e verbose=all trace=execve -v -p 1234
Джей Конрод
источник

Ответы:

162

Вам нужна опция, определяющая максимальную длину отображаемой строки (по умолчанию 32).-v -s strsize

Мэтью Слэттери
источник
14
Это не работает для «вложенных» аргументов или аргументов массива, напримерioctl(3, SNDCTL_TMR_TEMPO or TCGETA, {B9600 -opost -isig -icanon -echo ...})
Marki555
8
это было решено на stackoverflow.com/questions/34365928/…
Владимир Кунщиков
2
Как отметил другой пользователь в комментарии здесь, «аргумент -v работает с версии 4.15 и, похоже, был там со времени создания репозитория Git». Таким образом, вам не нужно изменять источник пакета, -v должна отлично работать с вложенными объектами.
DarkFranX