bulbazord created this revision.
bulbazord added reviewers: LLDB, clayborg, jingham, teemperor, JDevlieghere.
Herald added subscribers: atanasyan, jrtc27, mgorny, sdardis, emaste.
bulbazord requested review of this revision.
Herald added a project: LLDB.
I have created this change as a way to solicit feedback and foster
discussion. My goal is to sever lldbTarget's dependence on
lldbPluginProcessUtility as a part of my larger goal of more cleanly
setting boundaries between lldb's core libraries and lldb's plugin
libraries.
For the purposes of concretely demonstrating what severing the
dependence would look like, I made the easiest change possible (moving
files). I don't think this is the right kind of change because
lldbTarget should ideally be platform-independent. I considered turning
UnixSignals into a Plugin, but to me this felt like overkill. I think
the best change may be somewhere else (possibly creating a new non-plugin
library?) but I'm not sure what that should look like.
Feedback is appreciated.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D108335
Files:
lldb/include/lldb/Target/FreeBSDSignals.h
lldb/include/lldb/Target/GDBRemoteSignals.h
lldb/include/lldb/Target/LinuxSignals.h
lldb/include/lldb/Target/MipsLinuxSignals.h
lldb/include/lldb/Target/NetBSDSignals.h
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
lldb/source/Plugins/Process/Utility/CMakeLists.txt
lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp
lldb/source/Plugins/Process/Utility/FreeBSDSignals.h
lldb/source/Plugins/Process/Utility/GDBRemoteSignals.cpp
lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h
lldb/source/Plugins/Process/Utility/LinuxSignals.cpp
lldb/source/Plugins/Process/Utility/LinuxSignals.h
lldb/source/Plugins/Process/Utility/MipsLinuxSignals.cpp
lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h
lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp
lldb/source/Plugins/Process/Utility/NetBSDSignals.h
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
lldb/source/Target/CMakeLists.txt
lldb/source/Target/FreeBSDSignals.cpp
lldb/source/Target/GDBRemoteSignals.cpp
lldb/source/Target/LinuxSignals.cpp
lldb/source/Target/MipsLinuxSignals.cpp
lldb/source/Target/NetBSDSignals.cpp
lldb/source/Target/UnixSignals.cpp
lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
Index: lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
===================================================================
--- lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
+++ lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
@@ -9,9 +9,9 @@
#include "GDBRemoteTestUtils.h"
-#include "Plugins/Process/Utility/LinuxSignals.h"
#include "Plugins/Process/gdb-remote/GDBRemoteClientBase.h"
#include "Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h"
+#include "lldb/Target/LinuxSignals.h"
#include "lldb/Utility/GDBRemote.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Testing/Support/Error.h"
Index: lldb/source/Target/UnixSignals.cpp
===================================================================
--- lldb/source/Target/UnixSignals.cpp
+++ lldb/source/Target/UnixSignals.cpp
@@ -7,12 +7,12 @@
//===----------------------------------------------------------------------===//
#include "lldb/Target/UnixSignals.h"
-#include "Plugins/Process/Utility/FreeBSDSignals.h"
-#include "Plugins/Process/Utility/LinuxSignals.h"
-#include "Plugins/Process/Utility/MipsLinuxSignals.h"
-#include "Plugins/Process/Utility/NetBSDSignals.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Host/StringConvert.h"
+#include "lldb/Target/FreeBSDSignals.h"
+#include "lldb/Target/LinuxSignals.h"
+#include "lldb/Target/MipsLinuxSignals.h"
+#include "lldb/Target/NetBSDSignals.h"
#include "lldb/Utility/ArchSpec.h"
using namespace lldb_private;
Index: lldb/source/Target/NetBSDSignals.cpp
===================================================================
--- lldb/source/Target/NetBSDSignals.cpp
+++ lldb/source/Target/NetBSDSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "NetBSDSignals.h"
+#include "lldb/Target/NetBSDSignals.h"
using namespace lldb_private;
Index: lldb/source/Target/MipsLinuxSignals.cpp
===================================================================
--- lldb/source/Target/MipsLinuxSignals.cpp
+++ lldb/source/Target/MipsLinuxSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "MipsLinuxSignals.h"
+#include "lldb/Target/MipsLinuxSignals.h"
using namespace lldb_private;
Index: lldb/source/Target/LinuxSignals.cpp
===================================================================
--- lldb/source/Target/LinuxSignals.cpp
+++ lldb/source/Target/LinuxSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "LinuxSignals.h"
+#include "lldb/Target/LinuxSignals.h"
using namespace lldb_private;
Index: lldb/source/Target/GDBRemoteSignals.cpp
===================================================================
--- lldb/source/Target/GDBRemoteSignals.cpp
+++ lldb/source/Target/GDBRemoteSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "GDBRemoteSignals.h"
+#include "lldb/Target/GDBRemoteSignals.h"
using namespace lldb_private;
Index: lldb/source/Target/FreeBSDSignals.cpp
===================================================================
--- lldb/source/Target/FreeBSDSignals.cpp
+++ lldb/source/Target/FreeBSDSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "FreeBSDSignals.h"
+#include "lldb/Target/FreeBSDSignals.h"
using namespace lldb_private;
Index: lldb/source/Target/CMakeLists.txt
===================================================================
--- lldb/source/Target/CMakeLists.txt
+++ lldb/source/Target/CMakeLists.txt
@@ -10,16 +10,21 @@
ABI.cpp
AssertFrameRecognizer.cpp
ExecutionContext.cpp
+ FreeBSDSignals.cpp
+ GDBRemoteSignals.cpp
InstrumentationRuntime.cpp
InstrumentationRuntimeStopInfo.cpp
JITLoader.cpp
JITLoaderList.cpp
Language.cpp
LanguageRuntime.cpp
+ LinuxSignals.cpp
Memory.cpp
MemoryHistory.cpp
MemoryRegionInfo.cpp
+ MipsLinuxSignals.cpp
ModuleCache.cpp
+ NetBSDSignals.cpp
OperatingSystem.cpp
PathMappingList.cpp
Platform.cpp
@@ -82,7 +87,6 @@
lldbInterpreter
lldbSymbol
lldbUtility
- lldbPluginProcessUtility
LINK_COMPONENTS
Support
Index: lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
===================================================================
--- lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -60,6 +60,7 @@
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/DynamicLoader.h"
+#include "lldb/Target/GDBRemoteSignals.h"
#include "lldb/Target/MemoryRegionInfo.h"
#include "lldb/Target/SystemRuntime.h"
#include "lldb/Target/Target.h"
@@ -74,7 +75,6 @@
#include "GDBRemoteRegisterContext.h"
#include "Plugins/Platform/MacOSX/PlatformRemoteiOS.h"
-#include "Plugins/Process/Utility/GDBRemoteSignals.h"
#include "Plugins/Process/Utility/InferiorCallPOSIX.h"
#include "Plugins/Process/Utility/StopInfoMachException.h"
#include "ProcessGDBRemote.h"
Index: lldb/source/Plugins/Process/Utility/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/Process/Utility/CMakeLists.txt
+++ lldb/source/Plugins/Process/Utility/CMakeLists.txt
@@ -1,20 +1,15 @@
add_lldb_library(lldbPluginProcessUtility
AuxVector.cpp
DynamicRegisterInfo.cpp
- FreeBSDSignals.cpp
- GDBRemoteSignals.cpp
HistoryThread.cpp
HistoryUnwind.cpp
InferiorCallPOSIX.cpp
LinuxProcMaps.cpp
- LinuxSignals.cpp
MemoryTagManagerAArch64MTE.cpp
- MipsLinuxSignals.cpp
NativeProcessSoftwareSingleStep.cpp
NativeRegisterContextDBReg_arm64.cpp
NativeRegisterContextDBReg_x86.cpp
NativeRegisterContextRegisterInfo.cpp
- NetBSDSignals.cpp
RegisterContext_x86.cpp
RegisterContextDarwin_arm.cpp
RegisterContextDarwin_arm64.cpp
Index: lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
===================================================================
--- lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
+++ lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
@@ -12,9 +12,9 @@
#include <string>
-#include "Plugins/Process/Utility/GDBRemoteSignals.h"
#include "Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h"
#include "Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.h"
+#include "lldb/Target/GDBRemoteSignals.h"
#include "lldb/Target/Platform.h"
namespace lldb_private {
Index: lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
===================================================================
--- lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
+++ lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
@@ -20,6 +20,7 @@
#include "lldb/Host/Host.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Host/PosixApi.h"
+#include "lldb/Target/GDBRemoteSignals.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/FileSpec.h"
@@ -29,7 +30,6 @@
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/UriParser.h"
-#include "Plugins/Process/Utility/GDBRemoteSignals.h"
#include "Plugins/Process/gdb-remote/ProcessGDBRemote.h"
using namespace lldb;
Index: lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
===================================================================
--- lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
+++ lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
@@ -20,6 +20,7 @@
lldbPluginExpressionParserClang
lldbPluginCPPRuntime
lldbPluginTypeSystemClang
+ lldbPluginProcessUtility
CLANG_LIBS
clangAST
LINK_COMPONENTS
Index: lldb/source/Plugins/Process/Utility/NetBSDSignals.h
===================================================================
--- /dev/null
+++ lldb/source/Plugins/Process/Utility/NetBSDSignals.h
@@ -1,27 +0,0 @@
-//===-- NetBSDSignals.h ----------------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NETBSDSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NETBSDSIGNALS_H
-
-#include "lldb/Target/UnixSignals.h"
-
-namespace lldb_private {
-
-/// NetBSD specific set of Unix signals.
-class NetBSDSignals : public UnixSignals {
-public:
- NetBSDSignals();
-
-private:
- void Reset() override;
-};
-
-} // namespace lldb_private
-
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NETBSDSIGNALS_H
Index: lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h
===================================================================
--- /dev/null
+++ lldb/source/Plugins/Process/Utility/MipsLinuxSignals.h
@@ -1,28 +0,0 @@
-//===-- MipsLinuxSignals.h ------------------------------------------*- C++
-//-*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_MIPSLINUXSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_MIPSLINUXSIGNALS_H
-
-#include "lldb/Target/UnixSignals.h"
-
-namespace lldb_private {
-
-/// Linux specific set of Unix signals.
-class MipsLinuxSignals : public UnixSignals {
-public:
- MipsLinuxSignals();
-
-private:
- void Reset() override;
-};
-
-} // namespace lldb_private
-
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_MIPSLINUXSIGNALS_H
Index: lldb/source/Plugins/Process/Utility/LinuxSignals.h
===================================================================
--- /dev/null
+++ lldb/source/Plugins/Process/Utility/LinuxSignals.h
@@ -1,27 +0,0 @@
-//===-- LinuxSignals.h ------------------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXSIGNALS_H
-
-#include "lldb/Target/UnixSignals.h"
-
-namespace lldb_private {
-
-/// Linux specific set of Unix signals.
-class LinuxSignals : public UnixSignals {
-public:
- LinuxSignals();
-
-private:
- void Reset() override;
-};
-
-} // namespace lldb_private
-
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXSIGNALS_H
Index: lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h
===================================================================
--- /dev/null
+++ lldb/source/Plugins/Process/Utility/GDBRemoteSignals.h
@@ -1,29 +0,0 @@
-//===-- GDBRemoteSignals.h --------------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_GDBREMOTESIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_GDBREMOTESIGNALS_H
-
-#include "lldb/Target/UnixSignals.h"
-
-namespace lldb_private {
-
-/// Empty set of Unix signals to be filled by PlatformRemoteGDBServer
-class GDBRemoteSignals : public UnixSignals {
-public:
- GDBRemoteSignals();
-
- GDBRemoteSignals(const lldb::UnixSignalsSP &rhs);
-
-private:
- void Reset() override;
-};
-
-} // namespace lldb_private
-
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_GDBREMOTESIGNALS_H
Index: lldb/source/Plugins/Process/Utility/FreeBSDSignals.h
===================================================================
--- /dev/null
+++ lldb/source/Plugins/Process/Utility/FreeBSDSignals.h
@@ -1,27 +0,0 @@
-//===-- FreeBSDSignals.h ----------------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_FREEBSDSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_FREEBSDSIGNALS_H
-
-#include "lldb/Target/UnixSignals.h"
-
-namespace lldb_private {
-
-/// FreeBSD specific set of Unix signals.
-class FreeBSDSignals : public UnixSignals {
-public:
- FreeBSDSignals();
-
-private:
- void Reset() override;
-};
-
-} // namespace lldb_private
-
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_FREEBSDSIGNALS_H
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits