diff options
Diffstat (limited to 'lldb/include/lldb/Utility/Logging.h')
-rw-r--r-- | lldb/include/lldb/Utility/Logging.h | 116 |
1 files changed, 74 insertions, 42 deletions
diff --git a/lldb/include/lldb/Utility/Logging.h b/lldb/include/lldb/Utility/Logging.h index 1a8a1022c5c0..db84da244954 100644 --- a/lldb/include/lldb/Utility/Logging.h +++ b/lldb/include/lldb/Utility/Logging.h @@ -9,57 +9,89 @@ #ifndef LLDB_UTILITY_LOGGING_H #define LLDB_UTILITY_LOGGING_H +#include "lldb/Utility/Log.h" +#include "llvm/ADT/BitmaskEnum.h" #include <cstdint> -// Log Bits specific to logging in lldb -#define LIBLLDB_LOG_PROCESS (1u << 1) -#define LIBLLDB_LOG_THREAD (1u << 2) -#define LIBLLDB_LOG_DYNAMIC_LOADER (1u << 3) -#define LIBLLDB_LOG_EVENTS (1u << 4) -#define LIBLLDB_LOG_BREAKPOINTS (1u << 5) -#define LIBLLDB_LOG_WATCHPOINTS (1u << 6) -#define LIBLLDB_LOG_STEP (1u << 7) -#define LIBLLDB_LOG_EXPRESSIONS (1u << 8) -#define LIBLLDB_LOG_TEMPORARY (1u << 9) -#define LIBLLDB_LOG_STATE (1u << 10) -#define LIBLLDB_LOG_OBJECT (1u << 11) -#define LIBLLDB_LOG_COMMUNICATION (1u << 12) -#define LIBLLDB_LOG_CONNECTION (1u << 13) -#define LIBLLDB_LOG_HOST (1u << 14) -#define LIBLLDB_LOG_UNWIND (1u << 15) -#define LIBLLDB_LOG_API (1u << 16) -#define LIBLLDB_LOG_SCRIPT (1u << 17) -#define LIBLLDB_LOG_COMMANDS (1U << 18) -#define LIBLLDB_LOG_TYPES (1u << 19) -#define LIBLLDB_LOG_SYMBOLS (1u << 20) -#define LIBLLDB_LOG_MODULES (1u << 21) -#define LIBLLDB_LOG_TARGET (1u << 22) -#define LIBLLDB_LOG_MMAP (1u << 23) -#define LIBLLDB_LOG_OS (1u << 24) -#define LIBLLDB_LOG_PLATFORM (1u << 25) -#define LIBLLDB_LOG_SYSTEM_RUNTIME (1u << 26) -#define LIBLLDB_LOG_JIT_LOADER (1u << 27) -#define LIBLLDB_LOG_LANGUAGE (1u << 28) -#define LIBLLDB_LOG_DATAFORMATTERS (1u << 29) -#define LIBLLDB_LOG_DEMANGLE (1u << 30) -#define LIBLLDB_LOG_AST (1u << 31) -#define LIBLLDB_LOG_ALL (UINT32_MAX) -#define LIBLLDB_LOG_DEFAULT \ - (LIBLLDB_LOG_PROCESS | LIBLLDB_LOG_THREAD | LIBLLDB_LOG_DYNAMIC_LOADER | \ - LIBLLDB_LOG_BREAKPOINTS | LIBLLDB_LOG_WATCHPOINTS | LIBLLDB_LOG_STEP | \ - LIBLLDB_LOG_STATE | LIBLLDB_LOG_SYMBOLS | LIBLLDB_LOG_TARGET | \ - LIBLLDB_LOG_COMMANDS) - namespace lldb_private { -class Log; +enum class LLDBLog : Log::MaskType { + API = Log::ChannelFlag<0>, + AST = Log::ChannelFlag<1>, + Breakpoints = Log::ChannelFlag<2>, + Commands = Log::ChannelFlag<3>, + Communication = Log::ChannelFlag<4>, + Connection = Log::ChannelFlag<5>, + DataFormatters = Log::ChannelFlag<6>, + Demangle = Log::ChannelFlag<7>, + DynamicLoader = Log::ChannelFlag<8>, + Events = Log::ChannelFlag<9>, + Expressions = Log::ChannelFlag<10>, + Host = Log::ChannelFlag<11>, + JITLoader = Log::ChannelFlag<12>, + Language = Log::ChannelFlag<13>, + MMap = Log::ChannelFlag<14>, + Modules = Log::ChannelFlag<15>, + Object = Log::ChannelFlag<16>, + OS = Log::ChannelFlag<17>, + Platform = Log::ChannelFlag<18>, + Process = Log::ChannelFlag<19>, + Script = Log::ChannelFlag<20>, + State = Log::ChannelFlag<21>, + Step = Log::ChannelFlag<22>, + Symbols = Log::ChannelFlag<23>, + SystemRuntime = Log::ChannelFlag<24>, + Target = Log::ChannelFlag<25>, + Temporary = Log::ChannelFlag<26>, + Thread = Log::ChannelFlag<27>, + Types = Log::ChannelFlag<28>, + Unwind = Log::ChannelFlag<29>, + Watchpoints = Log::ChannelFlag<30>, + LLVM_MARK_AS_BITMASK_ENUM(Watchpoints), +}; + +LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); + +// Log Bits specific to logging in lldb +#define LIBLLDB_LOG_PROCESS ::lldb_private::LLDBLog::Process +#define LIBLLDB_LOG_THREAD ::lldb_private::LLDBLog::Thread +#define LIBLLDB_LOG_DYNAMIC_LOADER ::lldb_private::LLDBLog::DynamicLoader +#define LIBLLDB_LOG_EVENTS ::lldb_private::LLDBLog::Events +#define LIBLLDB_LOG_BREAKPOINTS ::lldb_private::LLDBLog::Breakpoints +#define LIBLLDB_LOG_WATCHPOINTS ::lldb_private::LLDBLog::Watchpoints +#define LIBLLDB_LOG_STEP ::lldb_private::LLDBLog::Step +#define LIBLLDB_LOG_EXPRESSIONS ::lldb_private::LLDBLog::Expressions +#define LIBLLDB_LOG_TEMPORARY ::lldb_private::LLDBLog::Temporary +#define LIBLLDB_LOG_STATE ::lldb_private::LLDBLog::State +#define LIBLLDB_LOG_OBJECT ::lldb_private::LLDBLog::Object +#define LIBLLDB_LOG_COMMUNICATION ::lldb_private::LLDBLog::Communication +#define LIBLLDB_LOG_CONNECTION ::lldb_private::LLDBLog::Connection +#define LIBLLDB_LOG_HOST ::lldb_private::LLDBLog::Host +#define LIBLLDB_LOG_UNWIND ::lldb_private::LLDBLog::Unwind +#define LIBLLDB_LOG_API ::lldb_private::LLDBLog::API +#define LIBLLDB_LOG_SCRIPT ::lldb_private::LLDBLog::Script +#define LIBLLDB_LOG_COMMANDS ::lldb_private::LLDBLog::Commands +#define LIBLLDB_LOG_TYPES ::lldb_private::LLDBLog::Types +#define LIBLLDB_LOG_SYMBOLS ::lldb_private::LLDBLog::Symbols +#define LIBLLDB_LOG_MODULES ::lldb_private::LLDBLog::Modules +#define LIBLLDB_LOG_TARGET ::lldb_private::LLDBLog::Target +#define LIBLLDB_LOG_MMAP ::lldb_private::LLDBLog::MMap +#define LIBLLDB_LOG_OS ::lldb_private::LLDBLog::OS +#define LIBLLDB_LOG_PLATFORM ::lldb_private::LLDBLog::Platform +#define LIBLLDB_LOG_SYSTEM_RUNTIME ::lldb_private::LLDBLog::SystemRuntime +#define LIBLLDB_LOG_JIT_LOADER ::lldb_private::LLDBLog::JITLoader +#define LIBLLDB_LOG_LANGUAGE ::lldb_private::LLDBLog::Language +#define LIBLLDB_LOG_DATAFORMATTERS ::lldb_private::LLDBLog::DataFormatters +#define LIBLLDB_LOG_DEMANGLE ::lldb_private::LLDBLog::Demangle +#define LIBLLDB_LOG_AST ::lldb_private::LLDBLog::AST -Log *GetLogIfAllCategoriesSet(uint32_t mask); +Log *GetLogIfAllCategoriesSet(LLDBLog mask); -Log *GetLogIfAnyCategoriesSet(uint32_t mask); +Log *GetLogIfAnyCategoriesSet(LLDBLog mask); void InitializeLldbChannel(); +template <> Log::Channel &LogChannelFor<LLDBLog>(); } // namespace lldb_private #endif // LLDB_UTILITY_LOGGING_H |