1 //===-- TraceExporterCTF.cpp ----------------------------------------------===// 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 #include "TraceExporterCTF.h" 10 11 #include <memory> 12 13 #include "CommandObjectThreadTraceExportCTF.h" 14 #include "lldb/Core/PluginManager.h" 15 16 using namespace lldb; 17 using namespace lldb_private; 18 using namespace lldb_private::ctf; 19 using namespace llvm; 20 LLDB_PLUGIN_DEFINE(TraceExporterCTF)21LLDB_PLUGIN_DEFINE(TraceExporterCTF) 22 23 //------------------------------------------------------------------ 24 // PluginInterface protocol 25 //------------------------------------------------------------------ 26 27 static CommandObjectSP 28 GetThreadTraceExportCommand(CommandInterpreter &interpreter) { 29 return std::make_shared<CommandObjectThreadTraceExportCTF>(interpreter); 30 } 31 Initialize()32void TraceExporterCTF::Initialize() { 33 PluginManager::RegisterPlugin(GetPluginNameStatic(), 34 "Chrome Trace Format Exporter", CreateInstance, 35 GetThreadTraceExportCommand); 36 } 37 Terminate()38void TraceExporterCTF::Terminate() { 39 PluginManager::UnregisterPlugin(CreateInstance); 40 } 41 GetPluginNameStatic()42ConstString TraceExporterCTF::GetPluginNameStatic() { 43 static ConstString g_name("ctf"); 44 return g_name; 45 } 46 GetPluginName()47ConstString TraceExporterCTF::GetPluginName() { return GetPluginNameStatic(); } 48 GetPluginVersion()49uint32_t TraceExporterCTF::GetPluginVersion() { return 1; } 50 CreateInstance()51Expected<TraceExporterUP> TraceExporterCTF::CreateInstance() { 52 return std::make_unique<TraceExporterCTF>(); 53 } 54