summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/POSIX
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2019-07-01 12:41:20 +0000
committerPavel Labath <pavel@labath.sk>2019-07-01 12:41:20 +0000
commit08c38f77c5fb4d3735ec215032fed8ee6730b3db (patch)
tree00d7467017e12830d7cd94fc3aa6ac10c749f53e /lldb/source/Plugins/Process/POSIX
parent33c8c0ea2756f25f9914d328906debf20cfc49d5 (diff)
downloadbcm5719-llvm-08c38f77c5fb4d3735ec215032fed8ee6730b3db.tar.gz
bcm5719-llvm-08c38f77c5fb4d3735ec215032fed8ee6730b3db.zip
Revert "Implement xfer:libraries-svr4:read packet"
D62502, together with D62503 have broken the builds which have XML support enabled. Reverting D62503 (r364355) fixed that, but has broken has left some of the tests introduced by D62502 broken more or less nondeternimistically (it depended on whether the system happens to place the library list near unreadable pages of memory). I attempted to make a partial fix for this in r364748, but Jan Kratochvil pointed out that this reintroduces the problem which reverting D62503 was trying to solve. So instead, I back out the whole thing so we can get back to a clean slate that works for everyone. We can figure out a way forward from there. This reverts r364748, r363772 and r363707. llvm-svn: 364751
Diffstat (limited to 'lldb/source/Plugins/Process/POSIX')
-rw-r--r--lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp71
-rw-r--r--lldb/source/Plugins/Process/POSIX/NativeProcessELF.h7
2 files changed, 1 insertions, 77 deletions
diff --git a/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp b/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp
index 50b2d05df3e..559b16c8fd6 100644
--- a/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp
+++ b/lldb/source/Plugins/Process/POSIX/NativeProcessELF.cpp
@@ -107,73 +107,4 @@ lldb::addr_t NativeProcessELF::GetELFImageInfoAddress() {
return LLDB_INVALID_ADDRESS;
}
-template <typename T>
-llvm::Expected<SVR4LibraryInfo>
-NativeProcessELF::ReadSVR4LibraryInfo(lldb::addr_t link_map_addr) {
- ELFLinkMap<T> link_map;
- size_t bytes_read;
- auto error =
- ReadMemory(link_map_addr, &link_map, sizeof(link_map), bytes_read);
- if (!error.Success())
- return error.ToError();
-
- char name_buffer[PATH_MAX];
- error = ReadMemory(link_map.l_name, &name_buffer, sizeof(name_buffer),
- bytes_read);
- if (bytes_read == 0)
- return error.ToError();
- name_buffer[PATH_MAX - 1] = '\0';
-
- SVR4LibraryInfo info;
- info.name = std::string(name_buffer);
- info.link_map = link_map_addr;
- info.base_addr = link_map.l_addr;
- info.ld_addr = link_map.l_ld;
- info.next = link_map.l_next;
-
- return info;
-}
-
-llvm::Expected<std::vector<SVR4LibraryInfo>>
-NativeProcessELF::GetLoadedSVR4Libraries() {
- // Address of DT_DEBUG.d_ptr which points to r_debug
- lldb::addr_t info_address = GetSharedLibraryInfoAddress();
- if (info_address == LLDB_INVALID_ADDRESS)
- return llvm::createStringError(llvm::inconvertibleErrorCode(),
- "Invalid shared library info address");
- // Address of r_debug
- lldb::addr_t address = 0;
- size_t bytes_read;
- auto status =
- ReadMemory(info_address, &address, GetAddressByteSize(), bytes_read);
- if (!status.Success())
- return status.ToError();
- if (address == 0)
- return llvm::createStringError(llvm::inconvertibleErrorCode(),
- "Invalid r_debug address");
- // Read r_debug.r_map
- lldb::addr_t link_map = 0;
- status = ReadMemory(address + GetAddressByteSize(), &link_map,
- GetAddressByteSize(), bytes_read);
- if (!status.Success())
- return status.ToError();
- if (address == 0)
- return llvm::createStringError(llvm::inconvertibleErrorCode(),
- "Invalid link_map address");
-
- std::vector<SVR4LibraryInfo> library_list;
- while (link_map) {
- llvm::Expected<SVR4LibraryInfo> info =
- GetAddressByteSize() == 8 ? ReadSVR4LibraryInfo<uint64_t>(link_map)
- : ReadSVR4LibraryInfo<uint32_t>(link_map);
- if (!info)
- return info.takeError();
- if (!info->name.empty() && info->base_addr != 0)
- library_list.push_back(*info);
- link_map = info->next;
- }
-
- return library_list;
-}
-
-} // namespace lldb_private
+} // namespace lldb_private \ No newline at end of file
diff --git a/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h b/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
index 4fb513baebf..84dc8d08a34 100644
--- a/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
+++ b/lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
@@ -37,13 +37,6 @@ protected:
template <typename ELF_EHDR, typename ELF_PHDR, typename ELF_DYN>
lldb::addr_t GetELFImageInfoAddress();
- llvm::Expected<std::vector<SVR4LibraryInfo>>
- GetLoadedSVR4Libraries() override;
-
- template <typename T>
- llvm::Expected<SVR4LibraryInfo>
- ReadSVR4LibraryInfo(lldb::addr_t link_map_addr);
-
std::unique_ptr<AuxVector> m_aux_vector;
llvm::Optional<lldb::addr_t> m_shared_library_info_addr;
};
OpenPOWER on IntegriCloud