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_prctl和unshare
-
新调用:
改进
-
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 swig和TEE27:2.7ioctl命令已实施。 -
实现以下
ioctl命令解码:FS_IOC_FS[GS]ETXATTR,FS_IOC_[GS]ETFLAGS, FS_IOC32_[GS]ETFLAGS ,LOOP_CONFIGURE, SIOCADDMULTI, SIOCDELMULTI ,SIOCGIFENCAP, SIOCOUTQNSD, SIOCSIFENCAP, SIOCSIFHWBROADCAST, UBI_IOCRPEB 和 UBI_IOCSPEB ,V4L2_BUF_TYPE_META_CAPTURE, V4L2_BUF_TYPE_META_OUTPUT, 和 VIDIOC_QUERY_EXT_CTRL . -
解码
PTRACE_GETREGSET和PTRACE_SETREGSETptrace请求的NT_PRSTATUS和NT_FPREGSETregsets。 -
解码以下
ptrace请求的regs参数:PTRACE_GETREGS,PTRACE_GETREGS64,PTRACE_SETREGS,PTRACE_SETREGS64,PTRACE_GETFPREGS, 和PTRACE_SETFPREGS。 -
解码
IPC_INFO和MSG_INFOmsgctl系统调用命令的struct msginfo参数。 -
解码 MSG_STAT 和
MSG_STAT_ANY参数。msgctl系统调用命令的struct msqid_ds -
解码
IPC_INFO和SEM_INFOsemctl系统调用命令的struct seminfo参数。 -
解码 IPC_
SET、、SEM_STAT 和IPC_STATsemctl 系统调用命令的SEM_STAT_ANYstruct semid_ds参数。 -
解码
IPC_INFOshmctl系统调用的struct shminfo参数。 -
解码
SHM_INFOshmctl系统调用命令的struct shm_info参数。 -
解码 SHM_STAT 和
SHM_STAT_ANY参数。shmctl系统调用命令的struct shmid_ds -
解码
IFLA_BRPORT swignetlink 属性已更新,以匹配 Linux 5.12 内核。 -
以下常量列表已更新
:*_MAGIC, ALGRAM ,AUDITfluentd ,BPF27:2.7 ,BTRFSfluentd ,CAP27:2.7 ,CLOSE_RANGEOVMF ,DEVCONFBurst ,ETHmasters ,FANHW ,IFLAvmcore , INET_DIAG lb ,INET_DIAG(2),IORING JavaDoc, IPV6 observability,IP 大会, KEXEC fluentd, KEYCTLSTORE,KEY27:2.7,KVMOVMF ,LOOPPROG, MDBA applications, MEMBARRIER_CMD27:2.7, MPOL JavaDoc , MSHW, MTD vmcore , NDA swig,NDA swig, NFT_MSG observabilityMSGERROVMF,NL, NTOVMF, PROVMF, PTP_PEROUT JavaDoc,PTRACEOVMF, RESOLVE applications,RTAX swig,RTA 7.9, RTCeffort,RTM vmcore , RTNH vmcore, RTPROT://<, RTPROTish,SCTP, SEGVswig, SO大会, STATXsatisfy, ST来查看, SYS swig, TCAsolutions, TRAPplatforms ,UFFDIO swig,UFFD solutions, 和 V4L2 vmcore . -
ioctl命令列表已更新,以匹配 Linux 5.13 内核更新中的此类列表。 随着 RHEA-2022:4635 公告的发布,strace 现在可以显示实际 SELinux 上下文和从 SELinux 上下文数据库提取的定义之间的不匹配。
strace 的 existing-
secontext选项已使用mismatch参数进行了扩展。这个参数可让您只打印预期的上下文以及实际不匹配的上下文。输出用双感叹号(!!)分隔,第一个是实际上下文,然后是预期上下文。在下面的示例中,full,mismatch参数打印预期的完整上下文以及实际的上下文,因为上下文的用户部分不匹配。但是,在使用单独的mismatch时,它只检查上下文的类型部分。预期的上下文不会打印,因为上下文的类型部分匹配。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux 上下文不匹配通常会导致与 SELinux 相关的访问控制问题。系统调用 traces 中打印的不匹配可显著加快 SELinux 上下文正确性的检查。系统调用 traces 也可以解释有关访问控制检查的特定内核行为。
程序错误修复
-
修复了
SIOCGIFINDEX、SIOCBRADDIF和SIOCBRDELIFioctl命令解码。 -
clock_gettime64,clock_settime64,clock_adjtime64, 和lock_getres_time64系统调用被添加到%clocktrace 类中。 -
statx系统调用添加到%fstat跟踪类中。 -
在以前的版本中,strace 对网络接口名称打印使用不足的缓冲区大小。这会导致断言打印需要 quoting 的接口名称,例如,名称在
xx模式下超过 4 个字符。随着 RHEA-2022:4635 公告的发布,这个程序错误已被解决。