Index: lldb/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c =================================================================== --- lldb/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c +++ lldb/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c @@ -4,9 +4,12 @@ #include #include +volatile int sem = 0; + static void bar() { char F = 'b'; - kill(getpid(), SIGSEGV); // Frame bar + sem = 1; + while (1) continue; // Frame bar } static void foo(void (*boomer)()) { @@ -28,5 +31,7 @@ stack = malloc(ssize); _lwp_makecontext(&uc, lwp_main, NULL, NULL, stack, ssize); _lwp_create(&uc, 0, &lid); + while (sem != 1) continue; + kill(getpid(), SIGSEGV); _lwp_wait(lid, NULL); } Index: lldb/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py =================================================================== --- lldb/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py +++ lldb/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py @@ -206,11 +206,10 @@ thread = process.GetSelectedThread() self.assertTrue(thread) self.assertEqual(thread.GetThreadID(), 2) - self.assertEqual(thread.GetThreadID(), 2) self.assertEqual(thread.GetStopReason(), lldb.eStopReasonSignal) self.assertEqual(thread.GetStopReasonDataCount(), 1) self.assertEqual(thread.GetStopReasonDataAtIndex(0), signal.SIGSEGV) - backtrace = ["_kill", "bar", "foo", "lwp_main"] + backtrace = ["bar", "foo", "lwp_main"] self.check_backtrace(thread, filename, backtrace) # thread 1 should have the same signal @@ -219,8 +218,7 @@ self.assertEqual(thread.GetStopReasonDataCount(), 1) self.assertEqual(thread.GetStopReasonDataAtIndex(0), signal.SIGSEGV) - @skipIf # TODO: fails with non-netbsd libc @skipIfLLVMTargetMissing("X86") def test_amd64(self): """Test double-threaded amd64 core dump where process is signalled.""" - self.do_test("2lwp_process_SIGSEGV.amd64", pid=141, region_count=24) + self.do_test("2lwp_process_SIGSEGV.amd64", pid=665, region_count=24)