mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 05:11:15 -06:00
Merge topic 'fix-win-dbg-msg'
cd46ecad19 Debugger: Fix pipe connection error message construction on Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8785
This commit is contained in:
@@ -221,13 +221,28 @@ void cmDebuggerPipeClient_WIN32::WaitForConnection()
|
||||
NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
|
||||
if (hPipe == INVALID_HANDLE_VALUE) {
|
||||
auto err = GetLastError();
|
||||
throw std::runtime_error("CreateFile failed with " + err);
|
||||
throw std::runtime_error(std::string("CreateFile failed for pipe ") +
|
||||
GetErrorMessage(err));
|
||||
}
|
||||
|
||||
pipes = std::make_unique<DuplexPipe_WIN32>(hPipe);
|
||||
}
|
||||
}
|
||||
|
||||
std::string cmDebuggerPipeClient_WIN32::GetErrorMessage(DWORD errorCode)
|
||||
{
|
||||
LPSTR message = nullptr;
|
||||
DWORD size = FormatMessageA(
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS,
|
||||
nullptr, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPSTR)&message, 0, nullptr);
|
||||
std::string errorMessage =
|
||||
this->PipeName + ": " + std::string(message, size);
|
||||
LocalFree(message);
|
||||
return errorMessage;
|
||||
}
|
||||
|
||||
bool cmDebuggerPipeClient_WIN32::isOpen()
|
||||
{
|
||||
return pipes != nullptr;
|
||||
|
||||
@@ -90,6 +90,8 @@ public:
|
||||
bool write(void const* buffer, size_t n) override;
|
||||
|
||||
private:
|
||||
std::string GetErrorMessage(DWORD errorCode);
|
||||
|
||||
std::string const PipeName;
|
||||
std::unique_ptr<DuplexPipe_WIN32> pipes;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user