From 9cbdfcdb4cf75bdb4f7061276ff89929c2b157a1 Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Wed, 12 Apr 2023 16:00:07 -0700 Subject: [lldb] Fix assertion when ScriptedProcess have no pid after launch This patch should fix an assertion that causes some test failures: https://ci.swift.org/view/LLDB/job/llvm-org-lldb-release-debuginfo/3587/console This was caused by the changes introduces in `88f409194d5a` where we replaced `DidLaunch` by `DidResume` in the `ScriptedProcess` class. However, by the time we resume the process, the pid should be already set. To address this, this patch brings back `DidLaunch` which will initialize the ScriptedProcess pid with a placeholder value. That value will be updated in `DidResume` to the final pid. Note, this 2 stage PID initialization is necessary sometimes, when the scripted process gets stopped at entry (launch) and gets assigned an object that contains the PID value. In this case, we need to update the PID when we resume the process after we've stopped at entry. This also replaces the default scripted process id to an arbitrary number (42) since the current value (0) is considered invalid. Differential Revision: https://reviews.llvm.org/D148153 Signed-off-by: Med Ismail Bennani --- lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp') diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp index 999edd8f8db7..23ff8811e3fd 100644 --- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp +++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp @@ -168,7 +168,10 @@ Status ScriptedProcess::DoLaunch(Module *exe_module, return {}; } +void ScriptedProcess::DidLaunch() { m_pid = GetInterface().GetProcessID(); } + void ScriptedProcess::DidResume() { + // Update the PID again, in case the user provided a placeholder pid at launch m_pid = GetInterface().GetProcessID(); GetLoadedDynamicLibrariesInfos(); } -- cgit v1.2.3