linux - 即使在大括号中也能在 strace 中显示完整的参数

标签 linux strace

我知道 -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/

相关文章:

linux - 追踪过程树

linux - Bash 脚本退出且没有错误

linux - 如何在共享库中的链接时(不是加载时)解析弱符号

c - 杀死 fork 的子进程会杀死 SIGCHLD 处理程序中的父进程

java - 与已用百分比相比,堆大小意外地大

linux-kernel - 在strace中捕获vDSO

c - 尝试将 GDB 附加到进程时如何解决 "ptrace operation not permitted"?

python - 如何按进程数打印前10个用户?

c - 如何在 Linux 内核中创建一个全局可访问的结构

macos - 相当于 mac os X 上的 strace -feopen <command>