From 90b0629ee1a6dcc93b057f2bcb03a96fb599376c Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Tue, 28 Mar 2023 15:38:53 -0400 Subject: [PATCH] strace: Trivial improvements. * Break in FlagsTypeHandler once we have cleared all flags. * Use sizeof(hex) instead of writing out the size again. * Place comment above variable name in patch_syscalls. --- src/bin/debug/strace/TypeHandler.cpp | 4 +++- src/bin/debug/strace/strace.cpp | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bin/debug/strace/TypeHandler.cpp b/src/bin/debug/strace/TypeHandler.cpp index ca5037089a..c98bfe3d70 100644 --- a/src/bin/debug/strace/TypeHandler.cpp +++ b/src/bin/debug/strace/TypeHandler.cpp @@ -228,6 +228,8 @@ FlagsTypeHandler::RenderValue(Context &context, unsigned int value) const string rendered; FlagsList::const_reverse_iterator i = fList.rbegin(); for (; i != fList.rend(); i++) { + if (value == 0) + break; if ((value & i->value) != i->value) continue; @@ -241,7 +243,7 @@ FlagsTypeHandler::RenderValue(Context &context, unsigned int value) const rendered += " | "; char hex[20]; - snprintf(hex, 20, "%x", value); + snprintf(hex, sizeof(hex), "0x%x", value); rendered += hex; } if (rendered.empty()) diff --git a/src/bin/debug/strace/strace.cpp b/src/bin/debug/strace/strace.cpp index 011dd12ce9..446b003495 100644 --- a/src/bin/debug/strace/strace.cpp +++ b/src/bin/debug/strace/strace.cpp @@ -272,8 +272,9 @@ patch_syscalls() for (size_t i = 0; i < sSyscallVector.size(); i++) { Syscall *syscall = sSyscallVector[i]; - const string returnTypeName = syscall->ReturnType()->TypeName(); + // patch return type handlers + const string returnTypeName = syscall->ReturnType()->TypeName(); if (returnTypeName == "status_t" || returnTypeName == "ssize_t" || returnTypeName == "int") { syscall->ReturnType()->SetHandler(create_status_t_type_handler());