即使在大括号中也能在 strace 中显示完整的参数
Show complete arguments in strace even in curly brackets
我知道 -s
选项应该显示更长的参数,但它并不总是有效(可能是因为那些大括号表示数组或嵌套参数?)。
即使在 运行 strace -s1000 my_command
之后,这个参数仍然被截断:
ioctl(3, SNDCTL_TMR_TEMPO or TCGETA, {B9600 -opost -isig -icanon -echo ...}) = 0
如何查看完整的参数?
在strace
参数中有是这样的选项——你应该使用-v命令行开关。
此外,由于这个强大实用程序的开源特性,您可以通过修补 strace
sources:
中的 defs.h
header 来完全禁用缩写
< #define abbrev(tcp) ((tcp)->qual_flg & QUAL_ABBREV)
---
> #define abbrev(tcp) 0
我已经从本地 gentoo /usr/portage/distfiles/ 软件源存储中以这种方式 strace-4.9
进行了修补。它不需要从 sourceforge 下载最新的 strace 源。
要详细描述 Vladimir Kunschikov 所说的话 - 运行 以下命令:
git clone git://git.code.sf.net/p/strace/code strace-code
cd strace-code
- 按照 Vladimir Kunschikov 的描述修改 defs.h 文件的部分。
./bootstrap
./configure
make
make install
strace
的修改版本应该已经安装在 /usr/local/bin/strace
中。现在,运行 strace
对 -s
选项使用较大的值。示例:
strace -s 65536 command_to_run_goes_here
来源:
- Vladimir Kunschikov 的回答。
- https://github.com/strace/strace/issues/2
根据 the manual and the source,-v
选项应该可以帮助您处理大型结构。
这里不是长度问题
./term.c: tprintf(" %sopost %sisig %sicanon %secho ...}",
如果需要,您可以在此处添加更多标志。标志在 /usr/include/asm-generic/termbits.h
中定义
我知道 -s
选项应该显示更长的参数,但它并不总是有效(可能是因为那些大括号表示数组或嵌套参数?)。
即使在 运行 strace -s1000 my_command
之后,这个参数仍然被截断:
ioctl(3, SNDCTL_TMR_TEMPO or TCGETA, {B9600 -opost -isig -icanon -echo ...}) = 0
如何查看完整的参数?
在strace
参数中有是这样的选项——你应该使用-v命令行开关。
此外,由于这个强大实用程序的开源特性,您可以通过修补 strace
sources:
defs.h
header 来完全禁用缩写
< #define abbrev(tcp) ((tcp)->qual_flg & QUAL_ABBREV)
---
> #define abbrev(tcp) 0
我已经从本地 gentoo /usr/portage/distfiles/ 软件源存储中以这种方式 strace-4.9
进行了修补。它不需要从 sourceforge 下载最新的 strace 源。
要详细描述 Vladimir Kunschikov 所说的话 - 运行 以下命令:
git clone git://git.code.sf.net/p/strace/code strace-code
cd strace-code
- 按照 Vladimir Kunschikov 的描述修改 defs.h 文件的部分。
./bootstrap
./configure
make
make install
strace
的修改版本应该已经安装在 /usr/local/bin/strace
中。现在,运行 strace
对 -s
选项使用较大的值。示例:
strace -s 65536 command_to_run_goes_here
来源:
- Vladimir Kunschikov 的回答。
- https://github.com/strace/strace/issues/2
根据 the manual and the source,-v
选项应该可以帮助您处理大型结构。
这里不是长度问题
./term.c: tprintf(" %sopost %sisig %sicanon %secho ...}",
如果需要,您可以在此处添加更多标志。标志在 /usr/include/asm-generic/termbits.h
中定义