From 4c7763eb2f3175b772d199424ffe3bdf52e7ee76 Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Tue, 22 May 2018 16:33:43 +0000 Subject: [PATCH] Enable ProcessMachCore plugin on non-apple platforms Summary: The plugin already builds fine on other platforms (linux, at least). All that was necessary was to revitalize the hack in PlatformDarwinKernel (not a very pretty hack, but it gets us going at least). I haven't done a thorough investigation of the state of the plugin on other platforms, but at least the two core file tests we have seem to pass, so I enable them. Reviewers: JDevlieghere, jasonmolenda Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D47133 llvm-svn: 332997 --- .../functionalities/postmortem/mach-core/TestMachCore.py | 1 - .../test/functionalities/source-map/TestTargetSourceMap.py | 1 - lldb/source/API/SystemInitializerFull.cpp | 6 +++--- lldb/source/Plugins/DynamicLoader/CMakeLists.txt | 5 +---- lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h | 1 + lldb/source/Plugins/Process/CMakeLists.txt | 2 +- 6 files changed, 6 insertions(+), 10 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py b/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py index 06225d3923c7..ea9812921572 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/postmortem/mach-core/TestMachCore.py @@ -26,7 +26,6 @@ class MachCoreTestCase(TestBase): lldb.DBG.SetSelectedPlatform(self._initial_platform) super(MachCoreTestCase, self).tearDown() - @skipUnlessDarwin def test_selected_thread(self): """Test that the right thread is selected after a core is loaded.""" # Create core form YAML. diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/source-map/TestTargetSourceMap.py b/lldb/packages/Python/lldbsuite/test/functionalities/source-map/TestTargetSourceMap.py index 2f8efbeaab63..6bcd9c92f8ce 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/source-map/TestTargetSourceMap.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/source-map/TestTargetSourceMap.py @@ -7,7 +7,6 @@ class TestTargetSourceMap(TestBase): mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin @no_debug_info_test def test_source_map(self): """Test target.source-map' functionality.""" diff --git a/lldb/source/API/SystemInitializerFull.cpp b/lldb/source/API/SystemInitializerFull.cpp index 3831e4007b2b..1e2a064384ab 100644 --- a/lldb/source/API/SystemInitializerFull.cpp +++ b/lldb/source/API/SystemInitializerFull.cpp @@ -84,6 +84,7 @@ #include "Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h" #include "Plugins/Process/elf-core/ProcessElfCore.h" #include "Plugins/Process/gdb-remote/ProcessGDBRemote.h" +#include "Plugins/Process/mach-core/ProcessMachCore.h" #include "Plugins/Process/minidump/ProcessMinidump.h" #include "Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h" #include "Plugins/SymbolFile/DWARF/SymbolFileDWARF.h" @@ -104,7 +105,6 @@ #include "Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h" #include "Plugins/Platform/MacOSX/PlatformiOSSimulator.h" #include "Plugins/Process/MacOSX-Kernel/ProcessKDP.h" -#include "Plugins/Process/mach-core/ProcessMachCore.h" #include "Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h" #endif #include "Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h" @@ -313,6 +313,7 @@ void SystemInitializerFull::Initialize() { JITLoaderGDB::Initialize(); ProcessElfCore::Initialize(); + ProcessMachCore::Initialize(); minidump::ProcessMinidump::Initialize(); MemoryHistoryASan::Initialize(); AddressSanitizerRuntime::Initialize(); @@ -353,7 +354,6 @@ void SystemInitializerFull::Initialize() { #if defined(__APPLE__) SymbolVendorMacOSX::Initialize(); ProcessKDP::Initialize(); - ProcessMachCore::Initialize(); PlatformAppleTVSimulator::Initialize(); PlatformAppleWatchSimulator::Initialize(); PlatformRemoteAppleTV::Initialize(); @@ -440,6 +440,7 @@ void SystemInitializerFull::Terminate() { JITLoaderGDB::Terminate(); ProcessElfCore::Terminate(); + ProcessMachCore::Terminate(); minidump::ProcessMinidump::Terminate(); MemoryHistoryASan::Terminate(); AddressSanitizerRuntime::Terminate(); @@ -471,7 +472,6 @@ void SystemInitializerFull::Terminate() { #if defined(__APPLE__) DynamicLoaderDarwinKernel::Terminate(); - ProcessMachCore::Terminate(); ProcessKDP::Terminate(); SymbolVendorMacOSX::Terminate(); PlatformAppleTVSimulator::Terminate(); diff --git a/lldb/source/Plugins/DynamicLoader/CMakeLists.txt b/lldb/source/Plugins/DynamicLoader/CMakeLists.txt index 8e1b316a3c25..9f3b2ab0e50f 100644 --- a/lldb/source/Plugins/DynamicLoader/CMakeLists.txt +++ b/lldb/source/Plugins/DynamicLoader/CMakeLists.txt @@ -1,9 +1,6 @@ +add_subdirectory(Darwin-Kernel) add_subdirectory(MacOSX-DYLD) add_subdirectory(POSIX-DYLD) add_subdirectory(Static) add_subdirectory(Hexagon-DYLD) add_subdirectory(Windows-DYLD) - -if (CMAKE_SYSTEM_NAME MATCHES "Darwin") - add_subdirectory(Darwin-Kernel) -endif() diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h index 9b3ec5e0d717..099bb524ae4a 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h @@ -201,6 +201,7 @@ public: // source/Host/macosx/cfcpp utilities. class PlatformDarwinKernel { +public: static lldb_private::ConstString GetPluginNameStatic(); }; diff --git a/lldb/source/Plugins/Process/CMakeLists.txt b/lldb/source/Plugins/Process/CMakeLists.txt index 62abd75a43b6..fdeb211fe7a2 100644 --- a/lldb/source/Plugins/Process/CMakeLists.txt +++ b/lldb/source/Plugins/Process/CMakeLists.txt @@ -11,9 +11,9 @@ elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") add_subdirectory(Windows/Common) elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") add_subdirectory(MacOSX-Kernel) - add_subdirectory(mach-core) endif() add_subdirectory(gdb-remote) add_subdirectory(Utility) add_subdirectory(elf-core) +add_subdirectory(mach-core) add_subdirectory(minidump)