[Lldb-commits] [lldb] [LLDB][Telemetry]Define DebuggerTelemetryInfo and related methods (PR #127696)

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Thu Feb 27 09:04:22 PST 2025


================
@@ -761,12 +764,27 @@ void Debugger::InstanceInitialize() {
 
 DebuggerSP Debugger::CreateInstance(lldb::LogOutputCallback log_callback,
                                     void *baton) {
+  lldb_private::telemetry::ScopeTelemetryCollector helper;
   DebuggerSP debugger_sp(new Debugger(log_callback, baton));
+
+  if (helper.TelemetryEnabled()) {
+    helper.RunAtScopeExit([&]() {
+      lldb_private::telemetry::TelemetryManager *manager =
+          lldb_private::telemetry::TelemetryManager::GetInstance();
+      lldb_private::telemetry::DebuggerInfo entry;
+      entry.debugger = debugger_sp.get();
+      entry.start_time = helper.GetStartTime();
+      entry.end_time = helper.GetCurrentTime();
+      manager->AtDebuggerStartup(&entry);
----------------
JDevlieghere wrote:

Pavel's suggestion is to fill in the common fields, i.e. the ones in `LLDBBaseTelemetryInfo`. I expressed my dislike for the `AtDebuggerStartup` and friends in another PR, and if the distinction is important, I'd argue that they should be different events. With that, you could do this: https://godbolt.org/z/eazvPWs46



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


More information about the lldb-commits mailing list