[lldb] Fix bug to update process public run lock with process state
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Wed, 19 Apr 2023 23:53:19 +0000 (16:53 -0700)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Wed, 19 Apr 2023 23:54:57 +0000 (16:54 -0700)
commita4f160dfc1aa508a88a83a9cb1420d762f863408
treea92b03985fe7de23f8bfe05018d1b77f7524b581
parent9516419c50a9bb318fdde626716823e14a5fee71
[lldb] Fix bug to update process public run lock with process state

This patch should address an issue that caused the process public run
lock to not be updated during a process launch/attach when the process
stops.

That caused the public run lock to report its state as running while the
process state is stopped. This prevents the users to interact with the
process (through the command line or via the SBAPI) since it's
considered still running.

To address that, this patch refactors the name of the internal hijack
listeners to a specific pattern `lldb.internal.<action>.hijack` that
are used to ensure that we've attached to or launched a process successfully.

Then, when updating the process public state, after updating the state
value, if the process is not hijacked externally, meaning if the process
doens't have a hijack listener that matches the internal hijack
listeners pattern, we can update the public run lock accordingly.

rdar://108283017

Differential Revision: https://reviews.llvm.org/D148400

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
lldb/include/lldb/Target/Process.h
lldb/source/Target/Process.cpp
lldb/source/Target/Target.cpp