1dda28197Spatrick //===-- Support.cpp -------------------------------------------------------===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick
9061da546Spatrick #include "lldb/Host/linux/Support.h"
10*f6aab3d8Srobert #include "lldb/Utility/LLDBLog.h"
11061da546Spatrick #include "lldb/Utility/Log.h"
12061da546Spatrick #include "llvm/Support/MemoryBuffer.h"
13061da546Spatrick
14061da546Spatrick llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
getProcFile(::pid_t pid,::pid_t tid,const llvm::Twine & file)15061da546Spatrick lldb_private::getProcFile(::pid_t pid, ::pid_t tid, const llvm::Twine &file) {
16*f6aab3d8Srobert Log *log = GetLog(LLDBLog::Host);
17061da546Spatrick std::string File =
18061da546Spatrick ("/proc/" + llvm::Twine(pid) + "/task/" + llvm::Twine(tid) + "/" + file)
19061da546Spatrick .str();
20061da546Spatrick auto Ret = llvm::MemoryBuffer::getFileAsStream(File);
21061da546Spatrick if (!Ret)
22061da546Spatrick LLDB_LOG(log, "Failed to open {0}: {1}", File, Ret.getError().message());
23061da546Spatrick return Ret;
24061da546Spatrick }
25061da546Spatrick
26061da546Spatrick llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
getProcFile(::pid_t pid,const llvm::Twine & file)27061da546Spatrick lldb_private::getProcFile(::pid_t pid, const llvm::Twine &file) {
28*f6aab3d8Srobert Log *log = GetLog(LLDBLog::Host);
29061da546Spatrick std::string File = ("/proc/" + llvm::Twine(pid) + "/" + file).str();
30061da546Spatrick auto Ret = llvm::MemoryBuffer::getFileAsStream(File);
31061da546Spatrick if (!Ret)
32061da546Spatrick LLDB_LOG(log, "Failed to open {0}: {1}", File, Ret.getError().message());
33061da546Spatrick return Ret;
34061da546Spatrick }
35061da546Spatrick
36061da546Spatrick llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
getProcFile(const llvm::Twine & file)37061da546Spatrick lldb_private::getProcFile(const llvm::Twine &file) {
38*f6aab3d8Srobert Log *log = GetLog(LLDBLog::Host);
39061da546Spatrick std::string File = ("/proc/" + file).str();
40061da546Spatrick auto Ret = llvm::MemoryBuffer::getFileAsStream(File);
41061da546Spatrick if (!Ret)
42061da546Spatrick LLDB_LOG(log, "Failed to open {0}: {1}", File, Ret.getError().message());
43061da546Spatrick return Ret;
44061da546Spatrick }
45