32 static const char sequences[] =
"\x1b[?9001l\x1b[?1004l";
33 static const size_t sequences_len =
sizeof(sequences) - 1;
34 char *buf =
static_cast<char *
>(dst);
35 if (len >= sequences_len) {
36 assert(dst_len >= len - sequences_len);
37 if (memcmp(buf, sequences, sequences_len) == 0) {
38 memmove(buf, buf + sequences_len, len - sequences_len);
53 if (
m_pty->IsConnected())
67 std::unique_lock<std::mutex> guard(
m_pty->GetMutex());
68 if (
m_pty->IsStopping()) {
69 m_pty->GetCV().wait(guard, [
this] {
return !
m_pty->IsStopping(); });
86 llvm_unreachable(
"not implemented");
static bool StripConPTYInitSequences(void *dst, size_t dst_len, size_t &len)
Strips the ConPTY initialization sequences that Windows unconditionally emits when a process is first...
bool m_pty_vt_sequence_was_stripped
lldb::ConnectionStatus Disconnect(Status *error_ptr) override
Disconnect the communications connection if one is currently connected.
size_t Write(const void *src, size_t src_len, lldb::ConnectionStatus &status, Status *error_ptr) override
The actual write function that attempts to write to the communications protocol.
ConnectionConPTY(std::shared_ptr< PseudoConsole > pty)
size_t Read(void *dst, size_t dst_len, const Timeout< std::micro > &timeout, lldb::ConnectionStatus &status, Status *error_ptr) override
Read from the ConPTY's pipe.
std::shared_ptr< PseudoConsole > m_pty
lldb::ConnectionStatus Connect(llvm::StringRef s, Status *error_ptr) override
Connect using the connect string url.
size_t Read(void *dst, size_t dst_len, const Timeout< std::micro > &timeout, lldb::ConnectionStatus &status, Status *error_ptr) override
The read function that attempts to read from the connection.
A class that represents a running process on the host machine.
ConnectionStatus
Connection Status Types.
@ eConnectionStatusSuccess
Success.
@ eConnectionStatusNoConnection
No connection.