diff options
author | Jason Molenda <jason@molenda.com> | 2022-08-02 14:13:20 -0700 |
---|---|---|
committer | Jason Molenda <jason@molenda.com> | 2022-08-02 14:14:16 -0700 |
commit | 96d12187b3d28f63d29802a7af49dfe53cc306f3 (patch) | |
tree | 32a7147821cb8d6fed92525c85d561a43b212f75 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h | |
parent | 560efad701709cc57021ccb14f91a012c5e835d3 (diff) | |
download | llvm-96d12187b3d28f63d29802a7af49dfe53cc306f3.zip llvm-96d12187b3d28f63d29802a7af49dfe53cc306f3.tar.gz llvm-96d12187b3d28f63d29802a7af49dfe53cc306f3.tar.bz2 |
Allow firmware binaries to be specified only by load address
Add support to Mach-O corefiles and to live gdb remote serial protocol
connections for the corefile/remote stub to provide a list of load
addresses of binaries that should be found & loaded by lldb, and nothing
else. lldb will try to parse the binary out of memory, and if it can
find a UUID, try to find a binary & its debug information based on the
UUID, falling back to using the memory image if it must.
A bit of code unification from three parts of lldb that were loading
individual binaries already, so there is a shared method in
DynamicLoader to handle all of the variations they were doing.
Re-landing this with a uuid_is_null() implementation added to
Utility/UuidCompatibility.h for non-Darwin systems.
Differential Revision: https://reviews.llvm.org/D130813
rdar://94249937
rdar://94249384
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h index 3d838d6..3a62747 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h @@ -220,6 +220,8 @@ public: bool GetProcessStandaloneBinary(UUID &uuid, lldb::addr_t &value, bool &value_is_offset); + std::vector<lldb::addr_t> GetProcessStandaloneBinaries(); + void GetRemoteQSupported(); bool GetVContSupported(char flavor); @@ -593,6 +595,7 @@ protected: UUID m_process_standalone_uuid; lldb::addr_t m_process_standalone_value = LLDB_INVALID_ADDRESS; bool m_process_standalone_value_is_offset = false; + std::vector<lldb::addr_t> m_binary_addresses; llvm::VersionTuple m_os_version; llvm::VersionTuple m_maccatalyst_version; std::string m_os_build; |