[llvm-branch-commits] [lldb] 09b0883 - [lldb] [POSIX-DYLD] Add libraries from initial eTakeSnapshot action
Michał Górny via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Dec 7 00:57:09 PST 2020
Author: Michał Górny
Date: 2020-12-07T09:56:51+01:00
New Revision: 09b08833f301ea375137931d26b7193101f82ceb
URL: https://github.com/llvm/llvm-project/commit/09b08833f301ea375137931d26b7193101f82ceb
DIFF: https://github.com/llvm/llvm-project/commit/09b08833f301ea375137931d26b7193101f82ceb.diff
LOG: [lldb] [POSIX-DYLD] Add libraries from initial eTakeSnapshot action
Explicitly consider the libraries reported on the initial eTakeSnapshot
action added, through adding them to the added soentry list
in DYLDRendezvous::SaveSOEntriesFromRemote(). This is necessary
on FreeBSD since the dynamic loader issues only a single 'consistent'
state rendezvous breakpoint hit for all the libraries present
in DT_NEEDED (while Linux issues an added-consistent event pair).
Reenable memory maps on FreeBSD since this fixed the issue triggered
by them.
Differential Revision: https://reviews.llvm.org/D92187
Added:
Modified:
lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
lldb/source/Plugins/Process/FreeBSDRemote/NativeProcessFreeBSD.cpp
lldb/test/API/api/multithreaded/TestMultithreaded.py
lldb/test/API/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py
lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
lldb/test/API/tools/lldb-server/libraries-svr4/TestGdbRemoteLibrariesSvr4Support.py
lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test
Removed:
################################################################################
diff --git a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
index 15b3805003a5..c06d640c654c 100644
--- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
+++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
@@ -295,8 +295,15 @@ bool DYLDRendezvous::SaveSOEntriesFromRemote(
return false;
// Only add shared libraries and not the executable.
- if (!SOEntryIsMainExecutable(entry))
+ if (!SOEntryIsMainExecutable(entry)) {
m_soentries.push_back(entry);
+ // This function is called only once, at the very beginning
+ // of the program. Make sure to add all soentries that are
+ // already present at this point. This is necessary to cover
+ // DT_NEEDED on FreeBSD since (unlike Linux) it does not report
+ // loading these libraries separately.
+ m_added_soentries.push_back(entry);
+ }
}
m_loaded_modules = module_list;
diff --git a/lldb/source/Plugins/Process/FreeBSDRemote/NativeProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSDRemote/NativeProcessFreeBSD.cpp
index fd3c05ab411e..b8ddd1a013e3 100644
--- a/lldb/source/Plugins/Process/FreeBSDRemote/NativeProcessFreeBSD.cpp
+++ b/lldb/source/Plugins/Process/FreeBSDRemote/NativeProcessFreeBSD.cpp
@@ -485,9 +485,6 @@ Status NativeProcessFreeBSD::Kill() {
Status NativeProcessFreeBSD::GetMemoryRegionInfo(lldb::addr_t load_addr,
MemoryRegionInfo &range_info) {
- // TODO: figure out why it breaks stuff
- return Status("currently breaks determining module list");
-
if (m_supports_mem_region == LazyBool::eLazyBoolNo) {
// We're done.
return Status("unsupported");
diff --git a/lldb/test/API/api/multithreaded/TestMultithreaded.py b/lldb/test/API/api/multithreaded/TestMultithreaded.py
index c6c75de386fa..60c2c3b372cb 100644
--- a/lldb/test/API/api/multithreaded/TestMultithreaded.py
+++ b/lldb/test/API/api/multithreaded/TestMultithreaded.py
@@ -31,7 +31,6 @@ def setUp(self):
@skipIfNoSBHeaders
# clang-cl does not support throw or catch (llvm.org/pr24538)
@skipIfWindows
- @expectedFailureAll(oslist=['freebsd'], bugnumber='llvm.org/pr48370')
def test_python_stop_hook(self):
"""Test that you can run a python command in a stop-hook when stdin is File based. """
self.build_and_test('driver.cpp test_stop-hook.cpp',
diff --git a/lldb/test/API/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py b/lldb/test/API/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py
index 81c3798ebba7..4439607d91cf 100644
--- a/lldb/test/API/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py
+++ b/lldb/test/API/functionalities/breakpoint/global_constructor/TestBreakpointInGlobalConstructor.py
@@ -15,7 +15,6 @@ class TestBreakpointInGlobalConstructors(TestBase):
mydir = TestBase.compute_mydir(__file__)
NO_DEBUG_INFO_TESTCASE = True
- @expectedFailureAll(oslist=["freebsd"], bugnumber='llvm.org/pr48373')
@expectedFailureNetBSD
def test(self):
self.build()
diff --git a/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py b/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
index 36984b3d1666..61e64d44e794 100644
--- a/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
+++ b/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
@@ -23,7 +23,6 @@ def setUp(self):
'main.cpp',
'// Run here before printing memory regions')
- @expectedFailureAll(oslist=["freebsd"])
def test(self):
self.build()
diff --git a/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py b/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
index c3b45c833d53..8a9b7187a716 100644
--- a/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
+++ b/lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
@@ -843,7 +843,6 @@ def test_qMemoryRegionInfo_is_supported_debugserver(self):
self.qMemoryRegionInfo_is_supported()
@llgs_test
- @expectedFailureAll(oslist=["freebsd"])
def test_qMemoryRegionInfo_is_supported_llgs(self):
self.init_llgs_test()
self.build()
@@ -908,7 +907,6 @@ def test_qMemoryRegionInfo_reports_code_address_as_executable_debugserver(
self.qMemoryRegionInfo_reports_code_address_as_executable()
@skipIfWindows # No pty support to test any inferior output
- @expectedFailureAll(oslist=["freebsd"])
@llgs_test
def test_qMemoryRegionInfo_reports_code_address_as_executable_llgs(self):
self.init_llgs_test()
@@ -975,7 +973,6 @@ def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_debugserv
self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable()
@skipIfWindows # No pty support to test any inferior output
- @expectedFailureAll(oslist=["freebsd"])
@llgs_test
def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_llgs(
self):
@@ -1042,7 +1039,6 @@ def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_debugserve
self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable()
@skipIfWindows # No pty support to test any inferior output
- @expectedFailureAll(oslist=["freebsd"])
@llgs_test
def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_llgs(
self):
diff --git a/lldb/test/API/tools/lldb-server/libraries-svr4/TestGdbRemoteLibrariesSvr4Support.py b/lldb/test/API/tools/lldb-server/libraries-svr4/TestGdbRemoteLibrariesSvr4Support.py
index 6cca0e6c50fa..902a17639d56 100644
--- a/lldb/test/API/tools/lldb-server/libraries-svr4/TestGdbRemoteLibrariesSvr4Support.py
+++ b/lldb/test/API/tools/lldb-server/libraries-svr4/TestGdbRemoteLibrariesSvr4Support.py
@@ -120,7 +120,7 @@ def test_libraries_svr4_well_formed(self):
@llgs_test
@skipUnlessPlatform(["linux", "android", "freebsd", "netbsd"])
- @expectedFailureAll(oslist=["freebsd", "netbsd"])
+ @expectedFailureNetBSD
def test_libraries_svr4_load_addr(self):
self.setup_test()
self.libraries_svr4_has_correct_load_addr()
diff --git a/lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test b/lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test
index 113922ef53b7..682b0e5332b1 100644
--- a/lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test
+++ b/lldb/test/Shell/Unwind/thread-step-out-ret-addr-check.test
@@ -3,7 +3,6 @@
# REQUIRES: target-x86_64
# UNSUPPORTED: system-windows
-# XFAIL: system-freebsd
# RUN: %clang_host %p/Inputs/call-asm.c -x assembler-with-cpp %p/Inputs/thread-step-out-ret-addr-check.s -o %t
# RUN: not %lldb %t -s %s -b 2>&1 | FileCheck %s
More information about the llvm-branch-commits
mailing list