10b57cec5SDimitry Andric //===-- ProcessGDBRemoteLog.h -----------------------------------*- C++ -*-===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_PROCESSGDBREMOTELOG_H 105ffd83dbSDimitry Andric #define LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_PROCESSGDBREMOTELOG_H 110b57cec5SDimitry Andric 120b57cec5SDimitry Andric #include "lldb/Utility/Log.h" 13*81ad6265SDimitry Andric #include "llvm/ADT/BitmaskEnum.h" 140b57cec5SDimitry Andric 150b57cec5SDimitry Andric namespace lldb_private { 160b57cec5SDimitry Andric namespace process_gdb_remote { 170b57cec5SDimitry Andric 1804eeddc0SDimitry Andric enum class GDBRLog : Log::MaskType { 1904eeddc0SDimitry Andric Async = Log::ChannelFlag<0>, 2004eeddc0SDimitry Andric Breakpoints = Log::ChannelFlag<1>, 2104eeddc0SDimitry Andric Comm = Log::ChannelFlag<2>, 2204eeddc0SDimitry Andric Memory = Log::ChannelFlag<3>, // Log memory reads/writes calls 2304eeddc0SDimitry Andric MemoryDataLong = Log::ChannelFlag<4>, // Log all memory reads/writes bytes 2404eeddc0SDimitry Andric MemoryDataShort = Log::ChannelFlag<5>, // Log short memory reads/writes bytes 2504eeddc0SDimitry Andric Packets = Log::ChannelFlag<6>, 2604eeddc0SDimitry Andric Process = Log::ChannelFlag<7>, 2704eeddc0SDimitry Andric Step = Log::ChannelFlag<8>, 2804eeddc0SDimitry Andric Thread = Log::ChannelFlag<9>, 2904eeddc0SDimitry Andric Watchpoints = Log::ChannelFlag<10>, 3004eeddc0SDimitry Andric LLVM_MARK_AS_BITMASK_ENUM(Watchpoints) 3104eeddc0SDimitry Andric }; 32*81ad6265SDimitry Andric LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(); 330b57cec5SDimitry Andric 3404eeddc0SDimitry Andric class ProcessGDBRemoteLog { 350b57cec5SDimitry Andric public: 360b57cec5SDimitry Andric static void Initialize(); 370b57cec5SDimitry Andric }; 380b57cec5SDimitry Andric 390b57cec5SDimitry Andric } // namespace process_gdb_remote 4004eeddc0SDimitry Andric 4104eeddc0SDimitry Andric template <> Log::Channel &LogChannelFor<process_gdb_remote::GDBRLog>(); 4204eeddc0SDimitry Andric 430b57cec5SDimitry Andric } // namespace lldb_private 440b57cec5SDimitry Andric 455ffd83dbSDimitry Andric #endif // LLDB_SOURCE_PLUGINS_PROCESS_GDB_REMOTE_PROCESSGDBREMOTELOG_H 46