-rw-r--r-- 1 username groupname 3190 Aug 12 16:46 Makefile
//----------------------------------------------------------------------
+// "qPlatform_mkdir"
+//
+// BRIEF
+// Creates a new directory on the connected remote machine.
+//
+// PRIORITY TO IMPLEMENT
+// Low. This command allows LLDB clients to create new directories on
+// a remote host.
+//
+/----------------------------------------------------------------------
+
+Request:
+ qPlatform_mkdir:<hex-file-mode>,<ascii-hex-path>
+
+Reply:
+ F<mkdir-return-code>
+ mkdir called successfully and returned with the given return code
+ Exx
+ An error occurred
+
+//----------------------------------------------------------------------
+// "qPlatform_chmod"
+//
+// BRIEF
+// Creates a new directory on the connected remote machine.
+//
+// PRIORITY TO IMPLEMENT
+// Low. This command allows LLDB clients to change the permissions of
+// a file on the remote host.
+//
+/----------------------------------------------------------------------
+
+Request:
+ qPlatform_chmod:<hex-file-mode>,<ascii-hex-path>
+
+Reply:
+ F<chmod-return-code>
+ chmod called successfully and returned with the given return code
+ Exx
+ An error occurred
+
+//----------------------------------------------------------------------
// "qHostInfo"
//
// BRIEF
const char *packet = stream.GetData();
int packet_len = stream.GetSize();
StringExtractorGDBRemote response;
- if (SendPacketAndWaitForResponse(packet, packet_len, response, false) == PacketResult::Success)
- {
- return Error(response.GetHexMaxU32(false, UINT32_MAX), eErrorTypePOSIX);
- }
- return Error();
+ if (SendPacketAndWaitForResponse(packet, packet_len, response, false) != PacketResult::Success)
+ return Error("failed to send '%s' packet", packet);
+
+ if (response.GetChar() != 'F')
+ return Error("invalid response to '%s' packet", packet);
+
+ return Error(response.GetU32(UINT32_MAX), eErrorTypePOSIX);
}
Error
const char *packet = stream.GetData();
int packet_len = stream.GetSize();
StringExtractorGDBRemote response;
- if (SendPacketAndWaitForResponse(packet, packet_len, response, false) == PacketResult::Success)
- {
- return Error(response.GetHexMaxU32(false, UINT32_MAX), eErrorTypePOSIX);
- }
- return Error();
-
+
+ if (SendPacketAndWaitForResponse(packet, packet_len, response, false) != PacketResult::Success)
+ return Error("failed to send '%s' packet", packet);
+
+ if (response.GetChar() != 'F')
+ return Error("invalid response to '%s' packet", packet);
+
+ return Error(response.GetU32(false, UINT32_MAX), eErrorTypePOSIX);
}
static uint64_t
std::string path;
packet.GetHexByteString(path);
Error error = FileSystem::MakeDirectory(path.c_str(), mode);
- if (error.Success())
- return SendPacketNoLock ("OK", 2);
- else
- return SendErrorResponse(error.GetError());
+
+ StreamGDBRemote response;
+ response.Printf("F%u", error.GetError());
+
+ return SendPacketNoLock(response.GetData(), response.GetSize());
}
return SendErrorResponse(20);
}
std::string path;
packet.GetHexByteString(path);
Error error = FileSystem::SetFilePermissions(path.c_str(), mode);
- if (error.Success())
- return SendPacketNoLock ("OK", 2);
- else
- return SendErrorResponse(error.GetError());
+
+ StreamGDBRemote response;
+ response.Printf("F%u", error.GetError());
+
+ return SendPacketNoLock(response.GetData(), response.GetSize());
}
return SendErrorResponse(19);
}