[Lldb-commits] [lldb] [lldb] Adding file and pipe support to lldb_private::MainLoopWindows. (PR #145621)
via lldb-commits
lldb-commits at lists.llvm.org
Tue Jun 24 17:58:11 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions cpp,h -- lldb/include/lldb/Host/JSONTransport.h lldb/include/lldb/Host/windows/MainLoopWindows.h lldb/include/lldb/Utility/IOObject.h lldb/source/Host/common/File.cpp lldb/source/Host/common/JSONTransport.cpp lldb/source/Host/common/Socket.cpp lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp lldb/source/Host/windows/MainLoopWindows.cpp lldb/source/Utility/IOObject.cpp lldb/tools/lldb-dap/DAP.cpp lldb/unittests/Host/FileTest.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/lldb/include/lldb/Host/JSONTransport.h b/lldb/include/lldb/Host/JSONTransport.h
index 348431ed6..172388421 100644
--- a/lldb/include/lldb/Host/JSONTransport.h
+++ b/lldb/include/lldb/Host/JSONTransport.h
@@ -84,8 +84,7 @@ public:
}
/// Reads the next message from the input stream.
- template <typename T>
- llvm::Expected<T> Read() {
+ template <typename T> llvm::Expected<T> Read() {
llvm::Expected<std::string> message = ReadImpl();
if (!message)
return message.takeError();
diff --git a/lldb/source/Host/common/JSONTransport.cpp b/lldb/source/Host/common/JSONTransport.cpp
index b5e271f61..f9bc01d92 100644
--- a/lldb/source/Host/common/JSONTransport.cpp
+++ b/lldb/source/Host/common/JSONTransport.cpp
@@ -27,8 +27,7 @@ using namespace lldb_private;
/// ReadFull attempts to read the specified number of bytes. If EOF is
/// encountered, an empty string is returned.
-static Expected<std::string>
-ReadFull(IOObject &descriptor, size_t length) {
+static Expected<std::string> ReadFull(IOObject &descriptor, size_t length) {
if (!descriptor.IsValid())
return llvm::make_error<TransportInvalidError>();
@@ -46,8 +45,8 @@ ReadFull(IOObject &descriptor, size_t length) {
return data.substr(0, length);
}
-static Expected<std::string>
-ReadUntil(IOObject &descriptor, StringRef delimiter) {
+static Expected<std::string> ReadUntil(IOObject &descriptor,
+ StringRef delimiter) {
std::string buffer;
buffer.reserve(delimiter.size() + 1);
while (!llvm::StringRef(buffer).ends_with(delimiter)) {
@@ -67,8 +66,7 @@ void JSONTransport::Log(llvm::StringRef message) {
LLDB_LOG(GetLog(LLDBLog::Host), "{0}", message);
}
-Expected<std::string>
-HTTPDelimitedJSONTransport::ReadImpl() {
+Expected<std::string> HTTPDelimitedJSONTransport::ReadImpl() {
if (!m_input || !m_input->IsValid())
return llvm::make_error<TransportInvalidError>();
@@ -120,14 +118,12 @@ Error HTTPDelimitedJSONTransport::WriteImpl(const std::string &message) {
return m_output->Write(Output.data(), num_bytes).takeError();
}
-Expected<std::string>
-JSONRPCTransport::ReadImpl() {
+Expected<std::string> JSONRPCTransport::ReadImpl() {
if (!m_input || !m_input->IsValid())
return make_error<TransportInvalidError>();
IOObject *input = m_input.get();
- Expected<std::string> raw_json =
- ReadUntil(*input, kMessageSeparator);
+ Expected<std::string> raw_json = ReadUntil(*input, kMessageSeparator);
if (!raw_json)
return raw_json.takeError();
diff --git a/lldb/source/Host/common/Socket.cpp b/lldb/source/Host/common/Socket.cpp
index 10c28a545..d6881f1b4 100644
--- a/lldb/source/Host/common/Socket.cpp
+++ b/lldb/source/Host/common/Socket.cpp
@@ -316,12 +316,12 @@ IOObject::WaitableHandle Socket::GetWaitableHandle() {
#ifdef _WIN32
if (m_socket == INVALID_SOCKET)
return IOObject::kInvalidHandleValue;
-
+
WSAEVENT event = WSACreateEvent();
assert(event != WSA_INVALID_EVENT);
if (WSAEventSelect(m_socket, event, FD_ACCEPT | FD_READ | FD_WRITE) != 0)
return IOObject::kInvalidHandleValue;
-
+
return event;
#else
return m_socket;
diff --git a/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp b/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
index 86a23b4f6..2fcad7f19 100644
--- a/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
+++ b/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
@@ -453,7 +453,7 @@ ConnectionFileDescriptor::BytesAvailable(const Timeout<std::micro> &timeout,
// FIXME: Migrate to MainLoop.
#if defined(_WIN32)
- if (const auto *sock = static_cast<Socket*>(m_io_sp.get()))
+ if (const auto *sock = static_cast<Socket *>(m_io_sp.get()))
select_helper.FDSetRead((socket_t)sock->GetNativeSocket());
// select() won't accept pipes on Windows. The entire Windows codepath
// needs to be converted over to using WaitForMultipleObjects and event
@@ -497,7 +497,8 @@ ConnectionFileDescriptor::BytesAvailable(const Timeout<std::micro> &timeout,
}
} else {
#if defined(_WIN32)
- if (const auto *sock = static_cast<Socket*>(m_io_sp.get()); select_helper.FDIsSetRead(sock->GetNativeSocket()))
+ if (const auto *sock = static_cast<Socket *>(m_io_sp.get());
+ select_helper.FDIsSetRead(sock->GetNativeSocket()))
#else
if (select_helper.FDIsSetRead(handle))
#endif
diff --git a/lldb/source/Host/windows/MainLoopWindows.cpp b/lldb/source/Host/windows/MainLoopWindows.cpp
index 78e392eea..d15f84565 100644
--- a/lldb/source/Host/windows/MainLoopWindows.cpp
+++ b/lldb/source/Host/windows/MainLoopWindows.cpp
@@ -9,9 +9,9 @@
#include "lldb/Host/windows/MainLoopWindows.h"
#include "lldb/Host/Config.h"
#include "lldb/Host/Socket.h"
-#include "llvm/Support/Casting.h"
#include "lldb/Utility/Status.h"
#include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Casting.h"
#include "llvm/Support/WindowsError.h"
#include <algorithm>
#include <cassert>
@@ -40,7 +40,8 @@ static void CloseSocketWaitHandle(IOObject::WaitableHandle handle) {
UNUSED_IF_ASSERT_DISABLED(result);
}
-static bool BytesAvailable(IOObject::WaitableHandle handle, const IOObjectSP &object) {
+static bool BytesAvailable(IOObject::WaitableHandle handle,
+ const IOObjectSP &object) {
DWORD available_bytes = 0;
switch (object->GetFdType()) {
case IOObject::eFDTypeFile:
@@ -51,13 +52,14 @@ static bool BytesAvailable(IOObject::WaitableHandle handle, const IOObjectSP &ob
if (sock == nullptr)
return false;
WSANETWORKEVENTS events;
- if (WSAEnumNetworkEvents(sock->GetNativeSocket(), (WSAEVENT)handle, &events) != 0)
+ if (WSAEnumNetworkEvents(sock->GetNativeSocket(), (WSAEVENT)handle,
+ &events) != 0)
return false;
if (events.lNetworkEvents & FD_CLOSE || events.lNetworkEvents & FD_ACCEPT) {
- available_bytes = 1;
- } else if (events.lNetworkEvents & FD_READ) {
- ioctlsocket(sock->GetNativeSocket(), FIONREAD, &available_bytes);
- }
+ available_bytes = 1;
+ } else if (events.lNetworkEvents & FD_READ) {
+ ioctlsocket(sock->GetNativeSocket(), FIONREAD, &available_bytes);
+ }
return available_bytes > 0;
}
llvm_unreachable();
@@ -81,16 +83,16 @@ llvm::Expected<size_t> MainLoopWindows::Poll() {
}
events.push_back(m_interrupt_event);
- DWORD result =
- WaitForMultipleObjects(events.size(), events.data(), FALSE,
- ToTimeout(GetNextWakeupTime()));
+ DWORD result = WaitForMultipleObjects(events.size(), events.data(), FALSE,
+ ToTimeout(GetNextWakeupTime()));
// A timeout is treated as a (premature) signalization of the interrupt event.
if (result == WAIT_TIMEOUT)
return events.size() - 1;
if (result == WAIT_FAILED)
- return llvm::createStringError(llvm::mapLastWindowsError(), "WaitForMultipleObjects failed");
+ return llvm::createStringError(llvm::mapLastWindowsError(),
+ "WaitForMultipleObjects failed");
if (result >= WAIT_OBJECT_0 && result < WAIT_OBJECT_0 + events.size())
return result - WAIT_OBJECT_0;
@@ -110,15 +112,13 @@ MainLoopWindows::RegisterReadObject(const IOObjectSP &object_sp,
IOObject::WaitableHandle waitable_handle = object_sp->GetWaitableHandle();
const bool inserted =
- m_read_fds
- .try_emplace(waitable_handle, FdInfo{object_sp, callback})
+ m_read_fds.try_emplace(waitable_handle, FdInfo{object_sp, callback})
.second;
if (!inserted) {
if (object_sp->GetFdType() == IOObject::eFDTypeSocket)
CloseSocketWaitHandle(waitable_handle);
error = Status::FromErrorStringWithFormat(
- "File descriptor %d already monitored.",
- waitable_handle);
+ "File descriptor %d already monitored.", waitable_handle);
return nullptr;
}
diff --git a/lldb/source/Utility/IOObject.cpp b/lldb/source/Utility/IOObject.cpp
index 690651827..c0c07cc0b 100644
--- a/lldb/source/Utility/IOObject.cpp
+++ b/lldb/source/Utility/IOObject.cpp
@@ -15,7 +15,8 @@
using namespace lldb_private;
#ifdef _WIN32
-const IOObject::WaitableHandle IOObject::kInvalidHandleValue = INVALID_HANDLE_VALUE;
+const IOObject::WaitableHandle IOObject::kInvalidHandleValue =
+ INVALID_HANDLE_VALUE;
#else
const IOObject::WaitableHandle IOObject::kInvalidHandleValue = -1;
#endif
diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp
index 7d388436b..46b4246f1 100644
--- a/lldb/tools/lldb-dap/DAP.cpp
+++ b/lldb/tools/lldb-dap/DAP.cpp
@@ -880,8 +880,7 @@ llvm::Error DAP::Loop() {
});
while (!disconnecting) {
- llvm::Expected<Message> next =
- transport.Read<protocol::Message>();
+ llvm::Expected<Message> next = transport.Read<protocol::Message>();
if (next.errorIsA<TransportEOFError>()) {
consumeError(next.takeError());
break;
``````````
</details>
https://github.com/llvm/llvm-project/pull/145621
More information about the lldb-commits
mailing list