blob: db84da244954afd2a62cbf57126e752172d62b90 [file] [log] [blame]
//===-- Logging.h -----------------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LLDB_UTILITY_LOGGING_H
#define LLDB_UTILITY_LOGGING_H
#include "lldb/Utility/Log.h"
#include "llvm/ADT/BitmaskEnum.h"
#include <cstdint>
namespace lldb_private {
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(LLDBLog mask);
Log *GetLogIfAnyCategoriesSet(LLDBLog mask);
void InitializeLldbChannel();
template <> Log::Channel &LogChannelFor<LLDBLog>();
} // namespace lldb_private
#endif // LLDB_UTILITY_LOGGING_H