From ae68d1f8652d125913df506f8e5befcfe2627c5e Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Fri, 11 Feb 2022 18:55:26 +0330 Subject: [PATCH] strace: Add a chdir formatter --- Userland/Utilities/strace.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Userland/Utilities/strace.cpp b/Userland/Utilities/strace.cpp index a7182f2fdad..10d13ef6a8a 100644 --- a/Userland/Utilities/strace.cpp +++ b/Userland/Utilities/strace.cpp @@ -529,6 +529,15 @@ struct Formatter : StandardFormatter { }; } +static void format_chdir(FormattedSyscallBuilder& builder, char const* path_p, size_t length) +{ + auto buf = copy_from_process(path_p, length); + if (buf.is_error()) + builder.add_arguments(buf.error()); + else + builder.add_arguments(StringView { buf.value().data(), buf.value().size() }); +} + static void format_fstat(FormattedSyscallBuilder& builder, int fd, struct stat* buf_p) { auto buf = copy_from_process(buf_p); @@ -711,6 +720,10 @@ static void format_syscall(FormattedSyscallBuilder& builder, Syscall::Function s format_fstat(builder, (int)arg1, (struct stat*)arg2); result_type = Ssize; break; + case SC_chdir: + format_chdir(builder, (char const*)arg1, (size_t)arg2); + result_type = Int; + break; case SC_get_process_name: format_get_process_name(builder, (char*)arg1, (size_t)arg2); break;