| //===-- LLDBLog.cpp -------------------------------------------------------===// | |
| // | |
| // 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 | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "lldb/Utility/LLDBLog.h" | |
| #include "lldb/Utility/Log.h" | |
| #include "llvm/ADT/ArrayRef.h" | |
| #include <cstdarg> | |
| using namespace lldb_private; | |
| static constexpr Log::Category g_categories[] = { | |
| {{"api"}, {"log API calls and return values"}, LLDBLog::API}, | |
| {{"ast"}, {"log AST"}, LLDBLog::AST}, | |
| {{"break"}, {"log breakpoints"}, LLDBLog::Breakpoints}, | |
| {{"commands"}, {"log command argument parsing"}, LLDBLog::Commands}, | |
| {{"comm"}, {"log communication activities"}, LLDBLog::Communication}, | |
| {{"conn"}, {"log connection details"}, LLDBLog::Connection}, | |
| {{"demangle"}, | |
| {"log mangled names to catch demangler crashes"}, | |
| LLDBLog::Demangle}, | |
| {{"dyld"}, | |
| {"log shared library related activities"}, | |
| LLDBLog::DynamicLoader}, | |
| {{"event"}, | |
| {"log broadcaster, listener and event queue activities"}, | |
| LLDBLog::Events}, | |
| {{"expr"}, {"log expressions"}, LLDBLog::Expressions}, | |
| {{"formatters"}, | |
| {"log data formatters related activities"}, | |
| LLDBLog::DataFormatters}, | |
| {{"host"}, {"log host activities"}, LLDBLog::Host}, | |
| {{"jit"}, {"log JIT events in the target"}, LLDBLog::JITLoader}, | |
| {{"language"}, {"log language runtime events"}, LLDBLog::Language}, | |
| {{"mmap"}, {"log mmap related activities"}, LLDBLog::MMap}, | |
| {{"module"}, | |
| {"log module activities such as when modules are created, destroyed, " | |
| "replaced, and more"}, | |
| LLDBLog::Modules}, | |
| {{"object"}, | |
| {"log object construction/destruction for important objects"}, | |
| LLDBLog::Object}, | |
| {{"os"}, {"log OperatingSystem plugin related activities"}, LLDBLog::OS}, | |
| {{"platform"}, {"log platform events and activities"}, LLDBLog::Platform}, | |
| {{"process"}, {"log process events and activities"}, LLDBLog::Process}, | |
| {{"script"}, {"log events about the script interpreter"}, LLDBLog::Script}, | |
| {{"state"}, | |
| {"log private and public process state changes"}, | |
| LLDBLog::State}, | |
| {{"step"}, {"log step related activities"}, LLDBLog::Step}, | |
| {{"symbol"}, {"log symbol related issues and warnings"}, LLDBLog::Symbols}, | |
| {{"system-runtime"}, {"log system runtime events"}, LLDBLog::SystemRuntime}, | |
| {{"target"}, {"log target events and activities"}, LLDBLog::Target}, | |
| {{"temp"}, {"log internal temporary debug messages"}, LLDBLog::Temporary}, | |
| {{"thread"}, {"log thread events and activities"}, LLDBLog::Thread}, | |
| {{"types"}, {"log type system related activities"}, LLDBLog::Types}, | |
| {{"unwind"}, {"log stack unwind activities"}, LLDBLog::Unwind}, | |
| {{"watch"}, {"log watchpoint related activities"}, LLDBLog::Watchpoints}, | |
| {{"on-demand"}, | |
| {"log symbol on-demand related activities"}, | |
| LLDBLog::OnDemand}, | |
| {{"source"}, {"log source related activities"}, LLDBLog::Source}, | |
| {{"disassembler"}, | |
| {"log disassembler related activities"}, | |
| LLDBLog::Disassembler}, | |
| {{"instrumentation-runtime"}, | |
| {"log instrumentation runtime plugin related activities"}, | |
| LLDBLog::InstrumentationRuntime}, | |
| }; | |
| static Log::Channel g_log_channel(g_categories, | |
| LLDBLog::Process | LLDBLog::Thread | | |
| LLDBLog::DynamicLoader | | |
| LLDBLog::Breakpoints | | |
| LLDBLog::Watchpoints | LLDBLog::Step | | |
| LLDBLog::State | LLDBLog::Symbols | | |
| LLDBLog::Target | LLDBLog::Commands); | |
| template <> Log::Channel &lldb_private::LogChannelFor<LLDBLog>() { | |
| return g_log_channel; | |
| } | |
| void LLDBLogChannel::Initialize() { Log::Register("lldb", g_log_channel); } | |
| void LLDBLogChannel::Terminate() { Log::Unregister("lldb"); } |