A.7. strace 的更改


Red Hat Developer Toolset 11.0 带有 strace 5.13

从以前的 Red Hat Developer Toolset 版本开始添加了或修改了以下功能:

行为的变化

  • 修改后的 %process 类包含与进程生命周期关联的系统调用(创建、执行和终止):

    • 新调用: kill,tkill,tgkill,pidfd_send_signal, 和 rt_sigqueueinfo
    • 删除的调用: arch_prctlunshare

改进

  • new -n (--syscall-number)选项会打印系统调用号。
  • new- secontext[=full] 选项显示 SELinux 上下文。
  • 实施 poke 注入,并添加了两个新选项 :--inject=SET:poke_enter= and- inject=SET:poke_exit=
  • 在 IBM POWER 构架中,添加了系统调用向量(SCV) ABI 支持。
  • 基于 libdw的堆栈追踪为非原生个人信息启用。
  • netlink 数据以更结构化的方式打印。
  • 以下系统调用的解码已被实现: close_range,epoll_pwait2,faccessat2,landlock_add_rule,landlock_create_ruleset,landlock_restrict_self,mount_setattr, 和 process_madvise
  • 解码以下系统调用: io_uring_setup,membarrier,perf_event_open, 和 pidfd_open
  • 解码 GPIO swigTEE27:2.7 ioctl 命令已实施。
  • 实现以下 ioctl 命令解码: FS_IOC_FS[GS]ETXATTR,FS_IOC_[GS]ETFLAGS , FS_IOC32_[GS]ET FLAGS ,LOOP_CONFIG URE, SIOCADD MULTI, SIOCDEL MULTI ,SIOCGIFENCAP , SIOCOUT QNSD, SIOCSIFE NCAP, SIOCSIFHWBRO ADCAST, UBI_IOCRPEB 和 UBI_I OCSPEB ,V4L2_BUF_TYPE_META_CAPTURE , V4L2_BUF_TYPE_META _OUTPUT , 和 VIDIOC_QUERY_EXT _CTRL .
  • 解码 PTRACE_GETREGSETPTRACE_SETREGSET ptrace 请求的 NT_PRSTATUSNT_FPREGSET regsets。
  • 解码以下 ptrace 请求的 regs 参数: PTRACE_GETREGS,PTRACE_GETREGS64,PTRACE_SETREGS,PTRACE_SETREGS64,PTRACE_GETFPREGS, 和 PTRACE_SETFPREGS
  • 解码 IPC_INFOMSG_INFO msgctl 系统调用命令的 struct msginfo 参数。
  • 解码 MSG_STAT 和 MSG_STAT _ ANY msgctl 系统调用命令的 struct msqid_ ds 参数。
  • 解码 IPC_INFOSEM_INFO semctl 系统调用命令的 struct seminfo 参数。
  • 解码 IPC_ SET、IPC _STAT、SEM_STAT 和 SEM_STAT _ANY semctl 系统调用命令的 struct semid_ds 参数。
  • 解码 IPC_INFO shmctl 系统调用的 struct shminfo 参数。
  • 解码 SHM_INFO shmctl 系统调用命令的 struct shm_info 参数。
  • 解码 SHM_STAT 和 SHM_STAT _ ANY shmctl 系统调用命令的 struct shmid_ ds 参数。
  • 解码 IFLA_BRPORT swig netlink 属性已更新,以匹配 Linux 5.12 内核。
  • 以下常量列表已更新 :*_MAGIC , ALG RAM , AUDIT fluentd , BPF 27:2.7 , BTRFS fluentd , CAP 27:2.7 , CLOSE_RANGE OVMF , DEVCONF Burst , ETH masters , FAN HW , IFLA vmcore , INET_DIAG lb , INET_DIAG (2), IO RING JavaDoc , IPV 6 observability , IP 大会 , K EXEC fluentd , KEY CTLSTORE , KEY27:2.7 , KVMOVMF , LOOPPROG , MDB A applications , MEMBARRIER_ CMD27:2.7 , M POL JavaDoc , MSHW , MT D vmcore , NDA swig , NDA swig , NFT_MSG observability , NL MSGERROVMF , NTOVMF , PROVMF , PTP_ PEROUT JavaDoc , PTRACEOVMF , RES OLVE applications , RTAX swig , RTA 7.9 , RTCeffort , RTM vmcore , RTNH vmcore , RTPROT://< , RT PROTish , SCTP, SEGV swig, SO 大会, STATX satisfy, ST 来查看, SYS swig , TCA solutions, TRAP platforms , UFFDIO swig , UFFD solutions , 和 V 4L2 vmcore .
  • ioctl 命令列表已更新,以匹配 Linux 5.13 内核更新中的此类列表。
  • 随着 RHEA-2022:4635 公告的发布,strace 现在可以显示实际 SELinux 上下文和从 SELinux 上下文数据库提取的定义之间的不匹配。

    strace 的 existing- secontext 选项已使用 mismatch 参数进行了扩展。这个参数可让您只打印预期的上下文以及实际不匹配的上下文。输出用双感叹号(!!)分隔,第一个是实际上下文,然后是预期上下文。在下面的示例中,full,mismatch 参数打印预期的完整上下文以及实际的上下文,因为上下文的用户部分不匹配。但是,在使用单独的 mismatch 时,它只检查上下文的类型部分。预期的上下文不会打印,因为上下文的类型部分匹配。

    [...]
    $ strace --secontext=full,mismatch -e statx stat /home/user/file
    statx(AT_FDCWD, "/home/user/file" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ...
    
    $ strace --secontext=mismatch -e statx stat /home/user/file
    statx(AT_FDCWD, "/home/user/file" [user_home_t:s0], ...
    Copy to Clipboard Toggle word wrap

    SELinux 上下文不匹配通常会导致与 SELinux 相关的访问控制问题。系统调用 traces 中打印的不匹配可显著加快 SELinux 上下文正确性的检查。系统调用 traces 也可以解释有关访问控制检查的特定内核行为。

程序错误修复

  • 修复了 SIOCGIFINDEXSIOCBRADDIFSIOCBRDELIF ioctl 命令解码。
  • clock_gettime64,clock_settime64,clock_adjtime64, 和 lock_getres_time64 系统调用被添加到 %clock trace 类中。
  • statx 系统调用添加到 %fstat 跟踪类中。
  • 在以前的版本中,strace 对网络接口名称打印使用不足的缓冲区大小。这会导致断言打印需要 quoting 的接口名称,例如,名称在 xx 模式下超过 4 个字符。随着 RHEA-2022:4635 公告的发布,这个程序错误已被解决。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat