================ @@ -0,0 +1,49 @@ +""" +Make sure that the concurrent vfork() from multiple threads works correctly. +""" + + +import lldb +import lldbsuite.test.lldbutil as lldbutil +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * + + +class TestConcurrentVFork(TestBase): + NO_DEBUG_INFO_TESTCASE = True + + def get_pid_from_variable(self): + target = self.dbg.GetTargetAtIndex(0) + return target.FindFirstGlobalVariable("g_pid").GetValueAsUnsigned() + + @skipIfWindows + def test_vfork_follow_parent(self): + """ + Make sure that debugging concurrent vfork() from multiple threads won't crash lldb during follow-parent. + And follow-parent successfully detach all child processes and exit debugger. + """ + + self.build() + lldbutil.run_to_source_breakpoint( + self, "// break here", lldb.SBFileSpec("main.cpp") + ) ---------------- clayborg wrote:
This will become: ``` use_fork = False # Call `vfork()` call_exec = False # Don't call `exec()` self.run_to_breakpoint(use_fork, call_exec); ``` And all of the other variations will need to set `use_fork` and `call_exec` correctly. https://github.com/llvm/llvm-project/pull/81564 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits