1 //===-- ProcessWindowsLog.h -------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef liblldb_ProcessWindowsLog_h_ 10 #define liblldb_ProcessWindowsLog_h_ 11 12 #include "lldb/Utility/Log.h" 13 14 #define WINDOWS_LOG_PROCESS (1u << 1) // Log process operations 15 #define WINDOWS_LOG_EXCEPTION (1u << 1) // Log exceptions 16 #define WINDOWS_LOG_THREAD (1u << 2) // Log thread operations 17 #define WINDOWS_LOG_MEMORY (1u << 3) // Log memory reads/writes calls 18 #define WINDOWS_LOG_BREAKPOINTS (1u << 4) // Log breakpoint operations 19 #define WINDOWS_LOG_STEP (1u << 5) // Log step operations 20 #define WINDOWS_LOG_REGISTERS (1u << 6) // Log register operations 21 #define WINDOWS_LOG_EVENT (1u << 7) // Low level debug events 22 23 namespace lldb_private { 24 class ProcessWindowsLog { 25 static Log::Channel g_channel; 26 27 public: 28 static void Initialize(); 29 static void Terminate(); 30 GetLogIfAny(uint32_t mask)31 static Log *GetLogIfAny(uint32_t mask) { return g_channel.GetLogIfAny(mask); } 32 }; 33 } 34 35 #endif // liblldb_ProcessWindowsLog_h_ 36