防止直言不讳的争论?

Jay*_*rod 110 linux strace

我正在尝试使用strace来找出程序执行的命令execve.这些命令中的一些参数很长,并且strace缩写了execve(我在大约30个字符后看到"......")的参数,阻止我获取任何有用的信息.我怎样才能得到每个论点的全文?

我已经阅读了手册页.-v选项打印环境,这很有用,但参数仍然被截断.

strace -f -e trace=execve -v -p 1234
Run Code Online (Sandbox Code Playgroud)

我也试过传递verbose = all,但这只是提供了一些关于SIGCHLD的额外信息.

strace -f -e verbose=all trace=execve -v -p 1234
Run Code Online (Sandbox Code Playgroud)

Mat*_*ery 149

您需要该选项,它指定要显示的字符串的最大长度(默认值为32).-s strsize

  • 这不适用于"嵌套"或数组参数,例如`ioctl(3,SNDCTL_TMR_TEMPO或TCGETA,{B9600 -opost -isig -icanon -echo ...})` (13认同)
  • 它已在http://stackoverflow.com/questions/34365928/show-complete-arguments-in-strace/34373478#34373478解决 (8认同)
  • 正如另一位用户在评论中指出的 [此处](/sf/ask/2405614991/#34373478)“-v 参数有效从 4.15 开始,似乎自 Git 存储库创建以来就一直存在。” 所以你不必改变包的来源, -v 应该可以很好地处理嵌套对象。 (3认同)
  • 在 5.5 版本中,单独的“-v”不起作用。然而,单独使用“-s strsize”而不使用“-v”实际上可以解决“嵌套”参数的缩写问题。 (2认同)