[Lldb-commits] [lldb] Define Telemetry plugin for LLDB. (PR #126588)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 13 02:21:03 PST 2025


================
@@ -59,11 +60,21 @@ struct LLDBBaseTelemetryInfo : public llvm::telemetry::TelemetryInfo {
 /// The base Telemetry manager instance in LLDB
 /// This class declares additional instrumentation points
 /// applicable to LLDB.
-class TelemetryManager : public llvm::telemetry::Manager {
+class TelemetryManager : public llvm::telemetry::Manager,
+                         public PluginInterface {
 public:
+  llvm::Error preDispatch(llvm::telemetry::TelemetryInfo *entry) override;
+
+  // Plugin interface
+  llvm::StringRef GetPluginName() override { return "TelemetryManager"; }
+
+  static TelemetryManager *getInstance();
+
+protected:
   TelemetryManager(std::unique_ptr<llvm::telemetry::Config> config);
 
-  llvm::Error preDispatch(llvm::telemetry::TelemetryInfo *entry) override;
+  static std::unique_ptr<TelemetryManager> g_instance;
----------------
labath wrote:

This one ought to be private since subclasses should go through `setInstance`. We could also delete the setter and have subclasses set the member directly, but I sort of like the setter approach more.

https://github.com/llvm/llvm-project/pull/126588


More information about the lldb-commits mailing list