================ @@ -120,15 +120,25 @@ bool NativeThreadLinux::GetStopReason(ThreadStopInfo &stop_info, case eStateCrashed: case eStateExited: case eStateSuspended: - case eStateUnloaded: + case eStateUnloaded: { if (log) LogThreadStopInfo(*log, m_stop_info, "m_stop_info in thread:"); stop_info = m_stop_info; description = m_stop_description; if (log) LogThreadStopInfo(*log, stop_info, "returned stop_info:"); + // Include child process PID/TID for forks. + // Client expects "<fork_pid> <fork_tid>" format. + if (stop_info.reason == eStopReasonFork || + stop_info.reason == eStopReasonVFork) { + description = std::to_string(stop_info.details.fork.child_pid); + description += " "; + description += std::to_string(stop_info.details.fork.child_tid); ---------------- clayborg wrote:
Why are we adding it here and not changing the original "m_stop_description" to contain it? We want everyone to get all of the information. If this is a human readable string, we should probably print out something like: ``` child-pid = 12345, child-tid = 345645 ``` instead of two magic numbers separate by a space. Or is this output used in the GDB remote packets somehow? Don't we need to add the child pid and tid to the JSON stop info for the other threads in a key/value pair encoding? https://github.com/llvm/llvm-project/pull/81564 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits