118a9135dSAdrian McCarthy //===-- ProcessWindowsLog.h -------------------------------------*- C++ -*-===// 218a9135dSAdrian McCarthy // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 618a9135dSAdrian McCarthy // 718a9135dSAdrian McCarthy //===----------------------------------------------------------------------===// 818a9135dSAdrian McCarthy 918a9135dSAdrian McCarthy #ifndef liblldb_ProcessWindowsLog_h_ 1018a9135dSAdrian McCarthy #define liblldb_ProcessWindowsLog_h_ 1118a9135dSAdrian McCarthy 126f9e6901SZachary Turner #include "lldb/Utility/Log.h" 13*359a2debSPavel Labath #include "llvm/ADT/BitmaskEnum.h" 1418a9135dSAdrian McCarthy 153cc0e33eSPavel Labath namespace lldb_private { 1618a9135dSAdrian McCarthy 176b67e89bSPavel Labath enum class WindowsLog : Log::MaskType { 186b67e89bSPavel Labath Breakpoints = Log::ChannelFlag<0>, // Log breakpoint operations 196b67e89bSPavel Labath Event = Log::ChannelFlag<1>, // Low level debug events 206b67e89bSPavel Labath Exception = Log::ChannelFlag<2>, // Log exceptions 216b67e89bSPavel Labath Memory = Log::ChannelFlag<3>, // Log memory reads/writes calls 226b67e89bSPavel Labath Process = Log::ChannelFlag<4>, // Log process operations 236b67e89bSPavel Labath Registers = Log::ChannelFlag<5>, // Log register operations 246b67e89bSPavel Labath Step = Log::ChannelFlag<6>, // Log step operations 256b67e89bSPavel Labath Thread = Log::ChannelFlag<7>, // Log thread operations 266b67e89bSPavel Labath LLVM_MARK_AS_BITMASK_ENUM(Thread) 276b67e89bSPavel Labath }; 28*359a2debSPavel Labath LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); 296b67e89bSPavel Labath 306b67e89bSPavel Labath class ProcessWindowsLog { 3118a9135dSAdrian McCarthy public: 32b9c1b51eSKate Stone static void Initialize(); 33b9c1b51eSKate Stone static void Terminate(); 3418a9135dSAdrian McCarthy }; 356b67e89bSPavel Labath 366b67e89bSPavel Labath template <> Log::Channel &LogChannelFor<WindowsLog>(); 373cc0e33eSPavel Labath } 3818a9135dSAdrian McCarthy 3918a9135dSAdrian McCarthy #endif // liblldb_ProcessWindowsLog_h_ 40