[lldb] [gdb-remote] Use Communication::WriteAll() over Write()
Replace the uses of Communication::Write() with WriteAll() to avoid partial writes. None of the call sites actually accounted for that possibility and even if it is unlikely to actually happen, there doesn't seem to be any real harm from using WriteAll() instead. Ideally, we'd remove Write() from the public API. However, that would change the API of SBCommunication. The alternative would be to alias it to WriteAll(). Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D132395
This commit is contained in:
parent
0c9b32e7dd
commit
03b8f79048
@ -2441,7 +2441,7 @@ GDBRemoteCommunicationServerLLGS::Handle_I(StringExtractorGDBRemote &packet) {
|
||||
// remote host
|
||||
ConnectionStatus status;
|
||||
Status error;
|
||||
m_stdio_communication.Write(tmp, read, status, &error);
|
||||
m_stdio_communication.WriteAll(tmp, read, status, &error);
|
||||
if (error.Fail()) {
|
||||
return SendErrorResponse(0x15);
|
||||
}
|
||||
|
@ -2880,7 +2880,7 @@ size_t ProcessGDBRemote::PutSTDIN(const char *src, size_t src_len,
|
||||
Status &error) {
|
||||
if (m_stdio_communication.IsConnected()) {
|
||||
ConnectionStatus status;
|
||||
m_stdio_communication.Write(src, src_len, status, nullptr);
|
||||
m_stdio_communication.WriteAll(src, src_len, status, nullptr);
|
||||
} else if (m_stdin_forward) {
|
||||
m_gdb_comm.SendStdinNotification(src, src_len);
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ protected:
|
||||
|
||||
bool Write(llvm::StringRef packet) {
|
||||
ConnectionStatus status;
|
||||
return server.Write(packet.data(), packet.size(), status, nullptr) ==
|
||||
return server.WriteAll(packet.data(), packet.size(), status, nullptr) ==
|
||||
packet.size();
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user