ProcessInstanceInfoMatch: Don't match processes with no name if a name match was...
authorPavel Labath <pavel@labath.sk>
Mon, 7 Oct 2019 17:17:53 +0000 (17:17 +0000)
committerPavel Labath <pavel@labath.sk>
Mon, 7 Oct 2019 17:17:53 +0000 (17:17 +0000)
commitf7bd5bffede5c97f92caaa5804f1768c0c7bbbc4
tree1f3e61eb5ac07573cc8f6ca72922b10352ea7aa6
parentde8599776b52b7d130fbe8373827f6a6a7c9f97d
ProcessInstanceInfoMatch: Don't match processes with no name if a name match was requested

Since D68289, a couple of tests on linux started being extremely flaky.
All of them were doing name-based attaching and were failing because
they couldn't find an unambiguous process to attach to.

The patch above changed the process finding logic, so that failure to
find a process name does not constitute an error. This meant that a lot
more transient processes showed up in the process list during the test
suite run. Previously, these processes would not appear as they would be
gone by the time we went to read their executable name, arguments, etc.

Now, this alone should not cause an issue were it not for the fact that
we were considering a process with no name as if it matched by default
(even if we were explicitly searching for a process with a specified
name). This meant that any of the "transient" processes with no name
would make the name match ambiguous. That clearly seems like a bug to me
so I fix that.

llvm-svn: 373925
lldb/source/Utility/ProcessInfo.cpp
lldb/unittests/Utility/ProcessInstanceInfoTest.cpp