xref: /freebsd-src/contrib/llvm-project/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
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