[lldb] Print correct thread plan in logging code of Thread::ShouldReportRun (#188198)

This code accesses the completed thread plan (even if it's private one).
However, the logging code does not pass `skip_private=false` and instead
accesses only the public completed thread plan. In case there is no
public thread plan, the logging code could also crash.

This is just some minor refactoring that ensures we use the same thread
plan in the logging code.
This commit is contained in:
Raphael Isemann 2026-03-25 08:34:57 +00:00 committed by GitHub
parent 5012b76ae2
commit 4e7274dd4a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1084,14 +1084,15 @@ Vote Thread::ShouldReportRun(Event *event_ptr) {
if (GetPlans().AnyCompletedPlans()) {
// Pass skip_private = false to GetCompletedPlan, since we want to ask
// the last plan, regardless of whether it is private or not.
ThreadPlanSP plan = GetPlans().GetCompletedPlan(/*skip_private=*/false);
LLDB_LOGF(log,
"Current Plan for thread %d(%p) (0x%4.4" PRIx64
", %s): %s being asked whether we should report run.",
GetIndexID(), static_cast<void *>(this), GetID(),
StateAsCString(GetTemporaryResumeState()),
GetCompletedPlan()->GetName());
StateAsCString(GetTemporaryResumeState()), plan->GetName());
return GetPlans().GetCompletedPlan(false)->ShouldReportRun(event_ptr);
return plan->ShouldReportRun(event_ptr);
} else {
LLDB_LOGF(log,
"Current Plan for thread %d(%p) (0x%4.4" PRIx64