From beca73e0fda983e42280eb33cb74b8922979fccb Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 1 Mar 2024 21:23:09 +0200 Subject: [PATCH] strace: Add support for pretty-printing the kill syscall --- Userland/Utilities/strace.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Userland/Utilities/strace.cpp b/Userland/Utilities/strace.cpp index eea59bf112..933df475ee 100644 --- a/Userland/Utilities/strace.cpp +++ b/Userland/Utilities/strace.cpp @@ -701,6 +701,16 @@ static void format_dbgputstr(FormattedSyscallBuilder& builder, char* characters, builder.add_argument(StringArgument { { characters, size }, "\0\n"sv }); } +static void format_kill(FormattedSyscallBuilder& builder, pid_t pid_or_pgid, int signal) +{ + builder.add_argument(pid_or_pgid); + auto* signal_name = getsignalname(signal); + if (signal_name) + builder.add_argument(signal_name); + else + builder.add_argument(signal); +} + static ErrorOr format_syscall(FormattedSyscallBuilder& builder, Syscall::Function syscall_function, syscall_arg_t arg1, syscall_arg_t arg2, syscall_arg_t arg3, syscall_arg_t res) { enum ResultType { @@ -788,6 +798,9 @@ static ErrorOr format_syscall(FormattedSyscallBuilder& builder, Syscall::F format_write(builder, (int)arg1, (void*)arg2, (size_t)arg3); result_type = Ssize; break; + case SC_kill: + format_kill(builder, (pid_t)arg1, (int)arg2); + break; case SC_getuid: case SC_geteuid: case SC_getgid: