From 34aae00fe9cea8b7e2b6d55c59cdd90cf1f31e97 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 1 Feb 2008 12:15:00 +0000 Subject: [PATCH] Syscall tracing no longer fetches the string parameter of the _kern_ktrace_output() syscall, since it will be stored in a separate entry anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23807 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/syscalls.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/syscalls.cpp b/src/system/kernel/syscalls.cpp index fee81b3035..a327b37f28 100644 --- a/src/system/kernel/syscalls.cpp +++ b/src/system/kernel/syscalls.cpp @@ -38,6 +38,8 @@ #include #include +#include "syscall_numbers.h" + typedef struct generic_syscall generic_syscall; @@ -324,7 +326,7 @@ class PreSyscall : public AbstractTraceEntry { kSyscallInfos[syscall].parameter_size, false); // copy string parameters, if any - if (fParameters != NULL) { + if (fParameters != NULL && syscall != SYSCALL_KTRACE_OUTPUT) { int32 stringIndex = 0; const extended_syscall_info& syscallInfo = kExtendedSyscallInfos[fSyscall]; @@ -379,7 +381,8 @@ class PreSyscall : public AbstractTraceEntry { value = (uint64)*(void**)data; break; case B_STRING_TYPE: - if (stringIndex < MAX_PARAM_STRINGS) { + if (stringIndex < MAX_PARAM_STRINGS + && fSyscall != SYSCALL_KTRACE_OUTPUT) { out.Print("%s\"%s\"", (i == 0 ? "" : ", "), fParameterStrings[stringIndex++]);