[Lldb-commits] [lldb] 68099b1 - [lldb] Add a getter for the process' system architecture
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 11 10:58:10 PST 2022
Author: Jonas Devlieghere
Date: 2022-03-11T10:58:04-08:00
New Revision: 68099b1d5c2c99ff79e56a9e183f1601835ea244
URL: https://github.com/llvm/llvm-project/commit/68099b1d5c2c99ff79e56a9e183f1601835ea244
DIFF: https://github.com/llvm/llvm-project/commit/68099b1d5c2c99ff79e56a9e183f1601835ea244.diff
LOG: [lldb] Add a getter for the process' system architecture
This patch adds a getter for the process' system architecture. I went
with Process::GetSystemArchitecture to match
Platform::GetSystemArchitecture.
Differential revision: https://reviews.llvm.org/D121443
Added:
Modified:
lldb/include/lldb/Target/Process.h
lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
Removed:
################################################################################
diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h
index 23debbee705ea..7d8fbb7797d89 100644
--- a/lldb/include/lldb/Target/Process.h
+++ b/lldb/include/lldb/Target/Process.h
@@ -696,6 +696,9 @@ class Process : public std::enable_shared_from_this<Process>,
virtual JITLoaderList &GetJITLoaders();
public:
+ /// Get the system architecture for this process.
+ virtual ArchSpec GetSystemArchitecture() { return {}; }
+
/// Get the system runtime plug-in for this process.
///
/// \return
diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
index ba2ed2056d20e..7b34a57a37692 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
@@ -576,6 +576,10 @@ bool ProcessWindows::IsAlive() {
}
}
+ArchSpec ProcessWindows::GetSystemArchitecture() {
+ return HostInfo::GetArchitecture();
+}
+
size_t ProcessWindows::DoReadMemory(lldb::addr_t vm_addr, void *buf,
size_t size, Status &error) {
size_t bytes_read = 0;
diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
index 6f6f93f588e33..27f9e63c2b80c 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
@@ -71,6 +71,8 @@ class ProcessWindows : public Process, public ProcessDebugger {
ThreadList &new_thread_list) override;
bool IsAlive() override;
+ ArchSpec GetSystemArchitecture override();
+
size_t DoReadMemory(lldb::addr_t vm_addr, void *buf, size_t size,
Status &error) override;
size_t DoWriteMemory(lldb::addr_t vm_addr, const void *buf, size_t size,
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 57be71e83adc0..d8dc229161c6b 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -208,6 +208,10 @@ std::chrono::seconds ProcessGDBRemote::GetPacketTimeout() {
return std::chrono::seconds(GetGlobalPluginProperties().GetPacketTimeout());
}
+ArchSpec ProcessGDBRemote::GetSystemArchitecture() {
+ return m_gdb_comm.GetHostArchitecture();
+}
+
bool ProcessGDBRemote::CanDebug(lldb::TargetSP target_sp,
bool plugin_specified_by_name) {
if (plugin_specified_by_name)
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
index d8f185073e3c4..50cef8e499dcc 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
@@ -70,6 +70,8 @@ class ProcessGDBRemote : public Process,
static std::chrono::seconds GetPacketTimeout();
+ ArchSpec GetSystemArchitecture() override;
+
// Check if a given Process
bool CanDebug(lldb::TargetSP target_sp,
bool plugin_specified_by_name) override;
More information about the lldb-commits
mailing list