我知道-s
选项应该显示更长的参数,但它总是不起作用(可能是因为那些大括号意味着数组或嵌套参数?)。
即使在运行strace -s1000 my_command
之后,此参数仍然被截断:
ioctl(3,SNDCTL_TMR_TEMPO或TCGETA,{B9600 -opost -isig -icanon -echo ...})= 0
我怎样才能看到完整的论点?
答案 0 :(得分:20)
strace
参数中有 这样的选项 - 您应该使用 -v 命令行开关。
此外,由于此实用程序的开源性质,您可以通过修补defs.h
sources中的strace
标题来完全禁用缩写:
< #define abbrev(tcp) ((tcp)->qual_flg & QUAL_ABBREV)
---
> #define abbrev(tcp) 0
我已经从我当地的gentoo / usr / portage / distfiles /软件源存储中修补strace-4.9
。它并不需要从sourceforge下载最新的strace源。
答案 1 :(得分:5)
详细描述Vladimir Kunschikov所说的内容 - 运行以下命令:
git clone git://git.code.sf.net/p/strace/code strace-code
cd strace-code
./bootstrap
./configure
make
make install
strace
的修改版本应该已安装在/usr/local/bin/strace
中。现在,使用strace
选项的较大值运行-s
。例如:
strace -s 65536 command_to_run_goes_here
来源:
答案 2 :(得分:1)
根据the manual和the source,-v
选项可以帮助您处理大型结构。
答案 3 :(得分:0)
这不是长度问题。
hold.toggleBlock();
hold1.toggleBlock();
如果需要,您可以在此处添加更多标志。这些标志在/usr/include/asm-generic/termbits.h
中定义