[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