[lldb] FormatManager::GetPossibleMatches assumes all ValueObjects have targets. (#93880)

But one made in a situation where that's impossible might only have an
error, and no symbol context, so that's not necessarily true. Check for
the target's validity before using it.

Fixes issue #93313
This commit is contained in:
jimingham
2024-05-31 10:43:05 -07:00
committed by GitHub
parent 7caa812f27
commit 1e81b67925
2 changed files with 14 additions and 1 deletions

View File

@@ -85,6 +85,13 @@ class TestRunLocker(TestBase):
# you aren't supposed to do while running, and that we get some
# actual error:
val = target.EvaluateExpression("SomethingToCall()")
# There was a bug [#93313] in the printing that would cause repr to crash, so I'm
# testing that separately.
self.assertIn(
"can't evaluate expressions when the process is running",
repr(val),
"repr works"
)
error = val.GetError()
self.assertTrue(error.Fail(), "Failed to run expression")
self.assertIn(