我知道 -s
选项应该显示更长的参数,但它并不总是有效(可能是因为那些大括号表示数组或嵌套参数?)。
即使在运行 strace -s1000 my_command
之后,这个参数仍然被截断:
ioctl(3, SNDCTL_TMR_TEMPO or TCGETA, {B9600 -opost -isig -icanon -echo ...}) = 0
如何查看完整的参数?
最佳答案
在 strace
参数中有这样的选项 - 你应该使用 -v 命令行开关。
此外,由于这个强大实用程序的开源特性,您可以通过修补 strace
中的 defs.h
header 来完全禁用缩写 sources :
< #define abbrev(tcp) ((tcp)->qual_flg & QUAL_ABBREV)
---
> #define abbrev(tcp) 0
我已经从本地 gentoo/usr/portage/distfiles/软件源存储中以这种方式修补了 strace-4.9
。它不需要从 sourceforge 下载最新的 strace 源。
关于linux - 即使在大括号中也能在 strace 中显示完整的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365928/