diff options
| author | Vy Nguyen <vyng@google.com> | 2025-03-18 22:54:08 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-18 22:54:08 -0400 |
| commit | 04e39ce3fddaaec41d9c7babcca55133d7e49969 (patch) | |
| tree | 014befa65b8957a9d1c251e83157cfd5ea8c8393 /lldb/source/Target/Target.cpp | |
| parent | a274ea1e3a3e1a824e876732074e4638e197b076 (diff) | |
[LLDB][Telemetry]Define TargetInfo for collecting data about a target (#127834)
Co-authored-by: Pavel Labath <pavel@labath.sk>
Diffstat (limited to 'lldb/source/Target/Target.cpp')
| -rw-r--r-- | lldb/source/Target/Target.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index bbc2110dada5..c26bca546891 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -24,6 +24,7 @@ #include "lldb/Core/Section.h" #include "lldb/Core/SourceManager.h" #include "lldb/Core/StructuredDataImpl.h" +#include "lldb/Core/Telemetry.h" #include "lldb/DataFormatters/FormatterSection.h" #include "lldb/Expression/DiagnosticManager.h" #include "lldb/Expression/ExpressionVariable.h" @@ -1559,10 +1560,30 @@ void Target::DidExec() { void Target::SetExecutableModule(ModuleSP &executable_sp, LoadDependentFiles load_dependent_files) { + telemetry::ScopedDispatcher<telemetry::ExecutableModuleInfo> helper( + &m_debugger); Log *log = GetLog(LLDBLog::Target); ClearModules(false); if (executable_sp) { + lldb::pid_t pid = LLDB_INVALID_PROCESS_ID; + if (ProcessSP proc = GetProcessSP()) + pid = proc->GetID(); + + helper.DispatchNow([&](telemetry::ExecutableModuleInfo *info) { + info->exec_mod = executable_sp; + info->uuid = executable_sp->GetUUID(); + info->pid = pid; + info->triple = executable_sp->GetArchitecture().GetTriple().getTriple(); + info->is_start_entry = true; + }); + + helper.DispatchOnExit([&](telemetry::ExecutableModuleInfo *info) { + info->exec_mod = executable_sp; + info->uuid = executable_sp->GetUUID(); + info->pid = pid; + }); + ElapsedTime elapsed(m_stats.GetCreateTime()); LLDB_SCOPED_TIMERF("Target::SetExecutableModule (executable = '%s')", executable_sp->GetFileSpec().GetPath().c_str()); |
