[Lldb-commits] [PATCH] D106832: [lldb] [gdb-remote client] Avoid zero padding PID/TID
Michał Górny via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Jul 26 15:05:00 PDT 2021
mgorny created this revision.
mgorny added reviewers: JDevlieghere, krytarowski, emaste, rovka, ted.
mgorny requested review of this revision.
Change SetCurrentThread*() logic not to include the zero padding
in PID/TID that was a side effect of 02ef0f5ab483 <https://reviews.llvm.org/rG02ef0f5ab483875b7b6b38e24b245e4fd4053959>. This should fix
problems caused by sending 64-bit integers to 32-bit servers. Reported
by Ted Woodward.
https://reviews.llvm.org/D106832
Files:
lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
Index: lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
===================================================================
--- lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
+++ lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
@@ -98,7 +98,7 @@
});
Handle_QThreadSuffixSupported(server, false);
- HandlePacket(server, "Hg0000000000000047", "OK");
+ HandlePacket(server, "Hg47", "OK");
HandlePacket(server, "P4=" + one_register_hex, "OK");
ASSERT_TRUE(write_result.get());
@@ -143,7 +143,7 @@
return client.SaveRegisterState(tid, save_id);
});
Handle_QThreadSuffixSupported(server, false);
- HandlePacket(server, "Hg0000000000000047", "OK");
+ HandlePacket(server, "Hg47", "OK");
HandlePacket(server, "QSaveRegisterState", "1");
ASSERT_TRUE(async_result.get());
EXPECT_EQ(1u, save_id);
Index: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
===================================================================
--- lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -2639,16 +2639,13 @@
packet.PutChar('H');
packet.PutChar(op);
- if (pid != LLDB_INVALID_PROCESS_ID) {
- packet.PutChar('p');
- packet.PutHex64(pid);
- packet.PutChar('.');
- }
+ if (pid != LLDB_INVALID_PROCESS_ID)
+ packet.Printf("p%" PRIx64 ".", pid);
if (tid == UINT64_MAX)
packet.PutCString("-1");
else
- packet.PutHex64(tid);
+ packet.Printf("%" PRIx64, tid);
StringExtractorGDBRemote response;
if (SendPacketAndWaitForResponse(packet.GetString(), response)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106832.361817.patch
Type: text/x-patch
Size: 1709 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20210726/45936477/attachment.bin>
More information about the lldb-commits
mailing list