brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · b96a309 Raw
52 lines · c
1//===-- CommandObjectTrace.h ------------------------------------*- 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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_COMMANDS_COMMANDOBJECTTRACE_H10#define LLDB_SOURCE_COMMANDS_COMMANDOBJECTTRACE_H11 12#include "CommandObjectThreadUtil.h"13 14namespace lldb_private {15 16class CommandObjectTrace : public CommandObjectMultiword {17public:18  CommandObjectTrace(CommandInterpreter &interpreter);19 20  ~CommandObjectTrace() override;21};22 23/// This class works by delegating the logic to the actual trace plug-in that24/// can support the current process.25class CommandObjectTraceProxy : public CommandObjectProxy {26public:27  CommandObjectTraceProxy(bool live_debug_session_only,28                          CommandInterpreter &interpreter, const char *name,29                          const char *help = nullptr,30                          const char *syntax = nullptr, uint32_t flags = 0)31      : CommandObjectProxy(interpreter, name, help, syntax, flags),32        m_live_debug_session_only(live_debug_session_only) {}33 34protected:35  virtual lldb::CommandObjectSP GetDelegateCommand(Trace &trace) = 0;36 37  llvm::Expected<lldb::CommandObjectSP> DoGetProxyCommandObject();38 39  CommandObject *GetProxyCommandObject() override;40 41private:42  llvm::StringRef GetUnsupportedError() override { return m_delegate_error; }43 44  bool m_live_debug_session_only;45  lldb::CommandObjectSP m_delegate_sp;46  std::string m_delegate_error;47};48 49} // namespace lldb_private50 51#endif // LLDB_SOURCE_COMMANDS_COMMANDOBJECTTRACE_H52