From 92e1ebeaa1fe0e5461327d071c55167733834e60 Mon Sep 17 00:00:00 2001 From: Walter Erquinigo Date: Tue, 29 Sep 2020 13:08:22 -0700 Subject: [PATCH] [trace] Fix destructor declaration The destructor must be defined in the implementation class so that it can be called, as Vedant Kumar pointed out in: ''' What were your thoughts, re: +class Trace : public PluginInterface { +public: + ~Trace() override = default; Does this need to be `virtual ~Trace() = ...`? Otherwise, when a std::shared_ptr is destroyed, the destructor for the derived TraceIntelPT instance won't run. ''' --- lldb/include/lldb/Target/Trace.h | 2 -- lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/include/lldb/Target/Trace.h b/lldb/include/lldb/Target/Trace.h index e4e9b1a..0aa2da7 100644 --- a/lldb/include/lldb/Target/Trace.h +++ b/lldb/include/lldb/Target/Trace.h @@ -35,8 +35,6 @@ namespace lldb_private { /// this information. class Trace : public PluginInterface { public: - ~Trace() override = default; - /// Dump the trace data that this plug-in has access to. /// /// This function will dump all of the trace data for all threads in a user diff --git a/lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h b/lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h index edc781e..d221caf 100644 --- a/lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h +++ b/lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h @@ -20,6 +20,8 @@ class TraceIntelPT : public lldb_private::Trace { public: void Dump(lldb_private::Stream *s) const override; + ~TraceIntelPT() override = default; + /// PluginInterface protocol /// \{ lldb_private::ConstString GetPluginName() override; -- 2.7.4