[Lldb-commits] [lldb] [LLDB][Telemetry]Define TargetInfo for collecting data about a target (PR #127834)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Mar 20 01:17:58 PDT 2025


================
@@ -1064,6 +1065,29 @@ const char *Process::GetExitDescription() {
 bool Process::SetExitStatus(int status, llvm::StringRef exit_string) {
   // Use a mutex to protect setting the exit status.
   std::lock_guard<std::mutex> guard(m_exit_status_mutex);
+  telemetry::ScopedDispatcher<telemetry::ProcessExitInfo> helper;
+
+  // Find the executable-module's UUID, if available.
+  UUID exec_uuid;
+  // Check if there is (still) a valid target and get the debugger and exec_uuid
+  // from it.
+  TargetSP target_sp(Debugger::FindTargetWithProcessID(m_pid));
+  if (target_sp) {
+    helper.SetDebugger(&(target_sp->GetDebugger()));
+    exec_uuid = target_sp->GetExecModuleUUID();
----------------
labath wrote:

That sort of makes sense. The target would not be available if it was already being destroyed. However, `Debugger::FindTargetWithProcessID` is still a very roundabout way to check for target validity. You should be able to achieve the same thing with:
```
if (TargetSP target_sp = m_target_wp.lock()) {
  ...
}
```

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


More information about the lldb-commits mailing list