diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h --- a/lldb/include/lldb/Target/Process.h +++ b/lldb/include/lldb/Target/Process.h @@ -699,6 +699,9 @@ /// Get the system architecture for this process. virtual ArchSpec GetSystemArchitecture() { return {}; } + /// Return the number of bits in a vmaddr that are used by valid addresses. + virtual llvm::Optional GetAddressingBits() { return {}; } + /// Get the system runtime plug-in for this process. /// /// \return diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h @@ -72,6 +72,8 @@ ArchSpec GetSystemArchitecture() override; + llvm::Optional GetAddressingBits() override; + // Check if a given Process bool CanDebug(lldb::TargetSP target_sp, bool plugin_specified_by_name) override; diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -212,6 +212,10 @@ return m_gdb_comm.GetHostArchitecture(); } +llvm::Optional ProcessGDBRemote::GetAddressingBits() { + return m_gdb_comm.GetAddressingBits(); +} + bool ProcessGDBRemote::CanDebug(lldb::TargetSP target_sp, bool plugin_specified_by_name) { if (plugin_specified_by_name)