From 6e5c4a443d7e354a37d7dcb82a65216679ab1b40 Mon Sep 17 00:00:00 2001 From: David Spickett Date: Fri, 25 Jun 2021 09:57:46 +0000 Subject: [PATCH] [lldb] Re-enable GDB server client memory tag read tests These were disabled in 473a3a773ea565612e836ae6c2093178c5a9eb72 because they failed on 32 bit platforms. (Arm for sure but I assume any 32 bit) This was due to the printf formatter used. These assumed that types like uint64_t/size_t would be certain size/type and that changes on 32 bit. Instead use "z" to print the size_t and PRI<...> formatters for the addr_t (always uint64_t) and the int32_t. --- .../Process/gdb-remote/GDBRemoteCommunicationClient.cpp | 2 +- .../Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp index a7fcf084fa60..0e529d221495 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp @@ -590,7 +590,7 @@ DataBufferSP GDBRemoteCommunicationClient::ReadMemoryTags(lldb::addr_t addr, size_t len, int32_t type) { StreamString packet; - packet.Printf("qMemTags:%lx,%lx:%x", addr, len, type); + packet.Printf("qMemTags:%" PRIx64 ",%zx:%" PRIx32, addr, len, type); StringExtractorGDBRemote response; Log *log = ProcessGDBRemoteLog::GetLogIfAnyCategoryIsSet(GDBR_LOG_MEMORY); diff --git a/lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp b/lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp index 91e63451d949..b9fc107527a2 100644 --- a/lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp +++ b/lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp @@ -465,7 +465,7 @@ TEST_F(GDBRemoteCommunicationClientTest, GetQOffsets) { EXPECT_EQ(llvm::None, GetQOffsets("TextSeg=0x1234")); EXPECT_EQ(llvm::None, GetQOffsets("TextSeg=12345678123456789")); } -#if 0 + static void check_qmemtags(TestClient &client, MockServer &server, size_t read_len, const char *packet, llvm::StringRef response, @@ -530,4 +530,3 @@ TEST_F(GDBRemoteCommunicationClientTest, ReadMemoryTags) { check_qmemtags(client, server, 32, "qMemTags:def0,20:1", "m01020", llvm::None); } -#endif