From 6bf15ffcdcfc62c39948e0e9449064e65b7f13bd Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 27 Apr 2008 14:24:18 +0000 Subject: [PATCH] * Changed macros that enable tracing for individual components from defined/undefined to numeric values (0 for undefined). This allows for trace levels. * Set SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT default to 1, since this is what one usually wants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25213 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/config_headers/tracing_config.h | 32 ++++++++++++--------- src/kits/app/Message.cpp | 2 +- src/system/kernel/debug/debug_paranoia.cpp | 2 +- src/system/kernel/heap.cpp | 2 +- src/system/kernel/signal.cpp | 2 +- src/system/kernel/slab/Slab.cpp | 2 +- src/system/kernel/syscalls.cpp | 10 ++++--- src/system/kernel/team.cpp | 2 +- src/system/kernel/vm/vm_page.cpp | 2 +- src/system/libroot/posix/malloc/wrapper.cpp | 2 +- src/system/runtime_loader/elf.cpp | 2 +- 11 files changed, 33 insertions(+), 27 deletions(-) diff --git a/build/config_headers/tracing_config.h b/build/config_headers/tracing_config.h index 653c31374a..c6b38bb010 100644 --- a/build/config_headers/tracing_config.h +++ b/build/config_headers/tracing_config.h @@ -14,20 +14,24 @@ #endif -// macros that enable tracing for individual components +#if ENABLE_TRACING -//#define BMESSAGE_TRACING -//#define BLOCK_CACHE_TRANSACTION_TRACING -//#define KERNEL_HEAP_TRACING -//#define PAGE_ALLOCATION_TRACING -//#define PARANOIA_TRACING -//#define PARANOIA_TRACING_STACK_TRACE 0 -//#define OBJECT_CACHE_TRACING -//#define RUNTIME_LOADER_TRACING -//#define SIGNAL_TRACING -//#define SYSCALL_TRACING -//#define SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT -//#define TEAM_TRACING -//#define USER_MALLOC_TRACING +// macros specifying the tracing level for individual components (0 is disabled) + +#define BMESSAGE_TRACING 0 +#define BLOCK_CACHE_TRANSACTION_TRACING 0 +#define KERNEL_HEAP_TRACING 0 +#define PAGE_ALLOCATION_TRACING 0 +#define PARANOIA_TRACING 0 +#define PARANOIA_TRACING_STACK_TRACE 0 /* stack traced depth */ +#define OBJECT_CACHE_TRACING 0 +#define RUNTIME_LOADER_TRACING 0 +#define SIGNAL_TRACING 0 +#define SYSCALL_TRACING 0 +#define SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT 1 +#define TEAM_TRACING 0 +#define USER_MALLOC_TRACING 0 + +#endif // ENABLE_TRACING #endif // KERNEL_TRACING_CONFIG_H diff --git a/src/kits/app/Message.cpp b/src/kits/app/Message.cpp index 55efb1ddad..aff08191d6 100644 --- a/src/kits/app/Message.cpp +++ b/src/kits/app/Message.cpp @@ -40,7 +40,7 @@ #define DEBUG_FUNCTION_ENTER2 //debug_printf("thread: 0x%x; line: %04ld: func: %s\n", find_thread(NULL), __LINE__, __PRETTY_FUNCTION__); -#ifdef BMESSAGE_TRACING +#if BMESSAGE_TRACING # define KTRACE(format...) ktrace_printf(format) #else # define KTRACE(format...) diff --git a/src/system/kernel/debug/debug_paranoia.cpp b/src/system/kernel/debug/debug_paranoia.cpp index ecd3629fd5..3a1d2da09a 100644 --- a/src/system/kernel/debug/debug_paranoia.cpp +++ b/src/system/kernel/debug/debug_paranoia.cpp @@ -196,7 +196,7 @@ union paranoia_slot { // #pragma mark - Tracing -#ifdef PARANOIA_TRACING +#if PARANOIA_TRACING namespace ParanoiaTracing { diff --git a/src/system/kernel/heap.cpp b/src/system/kernel/heap.cpp index 4201d7ad6b..bbf5e81bc0 100644 --- a/src/system/kernel/heap.cpp +++ b/src/system/kernel/heap.cpp @@ -100,7 +100,7 @@ static spinlock sDeferredFreeListLock; // #pragma mark - Tracing -#ifdef KERNEL_HEAP_TRACING +#if KERNEL_HEAP_TRACING namespace KernelHeapTracing { class Allocate : public AbstractTraceEntry { diff --git a/src/system/kernel/signal.cpp b/src/system/kernel/signal.cpp index 1bcb584d22..3ac7272e74 100644 --- a/src/system/kernel/signal.cpp +++ b/src/system/kernel/signal.cpp @@ -60,7 +60,7 @@ static status_t deliver_signal(struct thread *thread, uint signal, // #pragma mark - signal tracing -#ifdef SIGNAL_TRACING +#if SIGNAL_TRACING namespace SignalTracing { diff --git a/src/system/kernel/slab/Slab.cpp b/src/system/kernel/slab/Slab.cpp index 7f390ac7eb..1ad1a93635 100644 --- a/src/system/kernel/slab/Slab.cpp +++ b/src/system/kernel/slab/Slab.cpp @@ -178,7 +178,7 @@ static depot_magazine *alloc_magazine(); static void free_magazine(depot_magazine *magazine); -#ifdef OBJECT_CACHE_TRACING +#if OBJECT_CACHE_TRACING namespace ObjectCacheTracing { diff --git a/src/system/kernel/syscalls.cpp b/src/system/kernel/syscalls.cpp index d1d5a1251b..6d114d805a 100644 --- a/src/system/kernel/syscalls.cpp +++ b/src/system/kernel/syscalls.cpp @@ -58,7 +58,9 @@ static struct mutex sGenericSyscallLock; static struct list sGenericSyscalls; +#if SYSCALL_TRACING static int dump_syscall_tracing(int argc, char** argv); +#endif static generic_syscall * @@ -214,7 +216,7 @@ generic_syscall_init(void) return B_ERROR; } -#if ENABLE_TRACING && defined(SYSCALL_TRACING) +#if SYSCALL_TRACING add_debugger_command_etc("straced", &dump_syscall_tracing, "Dump recorded syscall trace entries", "Prints recorded trace entries. It is wrapper for the \"traced\"\n" @@ -311,7 +313,7 @@ unregister_generic_syscall(const char *subsystem, uint32 version) // #pragma mark - syscall tracing -#ifdef SYSCALL_TRACING +#if SYSCALL_TRACING namespace SyscallTracing { @@ -458,7 +460,7 @@ extern "C" void trace_pre_syscall(uint32 syscallNumber, const void* parameters); void trace_pre_syscall(uint32 syscallNumber, const void* parameters) { -#ifdef SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT +#if SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT if (syscallNumber != SYSCALL_KTRACE_OUTPUT) #endif { @@ -472,7 +474,7 @@ extern "C" void trace_post_syscall(int syscallNumber, uint64 returnValue); void trace_post_syscall(int syscallNumber, uint64 returnValue) { -#ifdef SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT +#if SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT if (syscallNumber != SYSCALL_KTRACE_OUTPUT) #endif { diff --git a/src/system/kernel/team.cpp b/src/system/kernel/team.cpp index 7b857b6465..6867065d57 100644 --- a/src/system/kernel/team.cpp +++ b/src/system/kernel/team.cpp @@ -88,7 +88,7 @@ spinlock team_spinlock = 0; // #pragma mark - Tracing -#ifdef TEAM_TRACING +#if TEAM_TRACING namespace TeamTracing { class TeamForked : public AbstractTraceEntry { diff --git a/src/system/kernel/vm/vm_page.cpp b/src/system/kernel/vm/vm_page.cpp index 3f5785fe21..66c0ec055c 100644 --- a/src/system/kernel/vm/vm_page.cpp +++ b/src/system/kernel/vm/vm_page.cpp @@ -66,7 +66,7 @@ static spinlock sPageLock; static sem_id sWriterWaitSem; -#ifdef PAGE_ALLOCATION_TRACING +#if PAGE_ALLOCATION_TRACING namespace PageAllocationTracing { diff --git a/src/system/libroot/posix/malloc/wrapper.cpp b/src/system/libroot/posix/malloc/wrapper.cpp index 99ce9e64a1..091747af59 100644 --- a/src/system/libroot/posix/malloc/wrapper.cpp +++ b/src/system/libroot/posix/malloc/wrapper.cpp @@ -34,7 +34,7 @@ using namespace BPrivate; -#ifdef USER_MALLOC_TRACING +#if USER_MALLOC_TRACING # define KTRACE(format...) ktrace_printf(format) #else # define KTRACE(format...) do {} while (false) diff --git a/src/system/runtime_loader/elf.cpp b/src/system/runtime_loader/elf.cpp index 94a645b03a..5254fb8043 100644 --- a/src/system/runtime_loader/elf.cpp +++ b/src/system/runtime_loader/elf.cpp @@ -125,7 +125,7 @@ atoi(const char* num) } -#ifdef RUNTIME_LOADER_TRACING +#if RUNTIME_LOADER_TRACING void ktrace_printf(const char *format, ...)