Logging.cpp revision 360784
1//===-- Logging.cpp ---------------------------------------------*- 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#include "lldb/Utility/Logging.h" 10#include "lldb/Utility/Log.h" 11 12#include "llvm/ADT/ArrayRef.h" 13 14#include <stdarg.h> 15 16using namespace lldb_private; 17 18static constexpr Log::Category g_categories[] = { 19 {{"api"}, {"log API calls and return values"}, LIBLLDB_LOG_API}, 20 {{"ast"}, {"log AST"}, LIBLLDB_LOG_AST}, 21 {{"break"}, {"log breakpoints"}, LIBLLDB_LOG_BREAKPOINTS}, 22 {{"commands"}, {"log command argument parsing"}, LIBLLDB_LOG_COMMANDS}, 23 {{"comm"}, {"log communication activities"}, LIBLLDB_LOG_COMMUNICATION}, 24 {{"conn"}, {"log connection details"}, LIBLLDB_LOG_CONNECTION}, 25 {{"demangle"}, {"log mangled names to catch demangler crashes"}, LIBLLDB_LOG_DEMANGLE}, 26 {{"dyld"}, {"log shared library related activities"}, LIBLLDB_LOG_DYNAMIC_LOADER}, 27 {{"event"}, {"log broadcaster, listener and event queue activities"}, LIBLLDB_LOG_EVENTS}, 28 {{"expr"}, {"log expressions"}, LIBLLDB_LOG_EXPRESSIONS}, 29 {{"formatters"}, {"log data formatters related activities"}, LIBLLDB_LOG_DATAFORMATTERS}, 30 {{"host"}, {"log host activities"}, LIBLLDB_LOG_HOST}, 31 {{"jit"}, {"log JIT events in the target"}, LIBLLDB_LOG_JIT_LOADER}, 32 {{"language"}, {"log language runtime events"}, LIBLLDB_LOG_LANGUAGE}, 33 {{"mmap"}, {"log mmap related activities"}, LIBLLDB_LOG_MMAP}, 34 {{"module"}, {"log module activities such as when modules are created, destroyed, replaced, and more"}, LIBLLDB_LOG_MODULES}, 35 {{"object"}, {"log object construction/destruction for important objects"}, LIBLLDB_LOG_OBJECT}, 36 {{"os"}, {"log OperatingSystem plugin related activities"}, LIBLLDB_LOG_OS}, 37 {{"platform"}, {"log platform events and activities"}, LIBLLDB_LOG_PLATFORM}, 38 {{"process"}, {"log process events and activities"}, LIBLLDB_LOG_PROCESS}, 39 {{"script"}, {"log events about the script interpreter"}, LIBLLDB_LOG_SCRIPT}, 40 {{"state"}, {"log private and public process state changes"}, LIBLLDB_LOG_STATE}, 41 {{"step"}, {"log step related activities"}, LIBLLDB_LOG_STEP}, 42 {{"symbol"}, {"log symbol related issues and warnings"}, LIBLLDB_LOG_SYMBOLS}, 43 {{"system-runtime"}, {"log system runtime events"}, LIBLLDB_LOG_SYSTEM_RUNTIME}, 44 {{"target"}, {"log target events and activities"}, LIBLLDB_LOG_TARGET}, 45 {{"temp"}, {"log internal temporary debug messages"}, LIBLLDB_LOG_TEMPORARY}, 46 {{"thread"}, {"log thread events and activities"}, LIBLLDB_LOG_THREAD}, 47 {{"types"}, {"log type system related activities"}, LIBLLDB_LOG_TYPES}, 48 {{"unwind"}, {"log stack unwind activities"}, LIBLLDB_LOG_UNWIND}, 49 {{"watch"}, {"log watchpoint related activities"}, LIBLLDB_LOG_WATCHPOINTS}, 50}; 51 52static Log::Channel g_log_channel(g_categories, LIBLLDB_LOG_DEFAULT); 53 54void lldb_private::InitializeLldbChannel() { 55 Log::Register("lldb", g_log_channel); 56} 57 58Log *lldb_private::GetLogIfAllCategoriesSet(uint32_t mask) { 59 return g_log_channel.GetLogIfAll(mask); 60} 61 62Log *lldb_private::GetLogIfAnyCategoriesSet(uint32_t mask) { 63 return g_log_channel.GetLogIfAny(mask); 64} 65