1 //===-- CommandObjectThreadTraceExportCTF.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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_COMMANDOBJECTTHREADTRACEEXPORTCTF_H 10 #define LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_COMMANDOBJECTTHREADTRACEEXPORTCTF_H 11 12 #include "TraceExporterCTF.h" 13 #include "lldb/Interpreter/CommandInterpreter.h" 14 #include "lldb/Interpreter/CommandReturnObject.h" 15 16 namespace lldb_private { 17 namespace ctf { 18 19 class CommandObjectThreadTraceExportCTF : public CommandObjectParsed { 20 public: 21 class CommandOptions : public Options { 22 public: 23 CommandOptions() : Options() { OptionParsingStarting(nullptr); } 24 25 Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg, 26 ExecutionContext *execution_context) override; 27 28 void OptionParsingStarting(ExecutionContext *execution_context) override; 29 30 llvm::ArrayRef<OptionDefinition> GetDefinitions() override; 31 32 llvm::Optional<size_t> m_thread_index; 33 std::string m_file; 34 }; 35 36 CommandObjectThreadTraceExportCTF(CommandInterpreter &interpreter) 37 : CommandObjectParsed( 38 interpreter, "thread trace export ctf", 39 "Export a given thread's trace to Chrome Trace Format", 40 "thread trace export ctf [<ctf-options>]", 41 lldb::eCommandRequiresProcess | lldb::eCommandTryTargetAPILock | 42 lldb::eCommandProcessMustBeLaunched | 43 lldb::eCommandProcessMustBePaused | 44 lldb::eCommandProcessMustBeTraced), 45 m_options() {} 46 47 Options *GetOptions() override { return &m_options; } 48 49 protected: 50 bool DoExecute(Args &command, CommandReturnObject &result) override; 51 52 CommandOptions m_options; 53 }; 54 55 } // namespace ctf 56 } // namespace lldb_private 57 58 #endif // LLDB_SOURCE_PLUGINS_TRACE_INTEL_PT_COMMANDOBJECTTHREADTRACEEXPORTCTF_H 59