1//===-- Support.cpp -------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "lldb/Host/linux/Support.h"
10#include "lldb/Utility/LLDBLog.h"
11#include "lldb/Utility/Log.h"
12#include "llvm/Support/MemoryBuffer.h"
13
14llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
15lldb_private::getProcFile(::pid_t pid, ::pid_t tid, const llvm::Twine &file) {
16 Log *log = GetLog(mask: LLDBLog::Host);
17 std::string File =
18 ("/proc/" + llvm::Twine(pid) + "/task/" + llvm::Twine(tid) + "/" + file)
19 .str();
20 auto Ret = llvm::MemoryBuffer::getFileAsStream(Filename: File);
21 if (!Ret)
22 LLDB_LOG(log, "Failed to open {0}: {1}", File, Ret.getError().message());
23 return Ret;
24}
25
26llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
27lldb_private::getProcFile(::pid_t pid, const llvm::Twine &file) {
28 Log *log = GetLog(mask: LLDBLog::Host);
29 std::string File = ("/proc/" + llvm::Twine(pid) + "/" + file).str();
30 auto Ret = llvm::MemoryBuffer::getFileAsStream(Filename: File);
31 if (!Ret)
32 LLDB_LOG(log, "Failed to open {0}: {1}", File, Ret.getError().message());
33 return Ret;
34}
35
36llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
37lldb_private::getProcFile(const llvm::Twine &file) {
38 Log *log = GetLog(mask: LLDBLog::Host);
39 std::string File = ("/proc/" + file).str();
40 auto Ret = llvm::MemoryBuffer::getFileAsStream(Filename: File);
41 if (!Ret)
42 LLDB_LOG(log, "Failed to open {0}: {1}", File, Ret.getError().message());
43 return Ret;
44}
45

source code of lldb/source/Host/linux/Support.cpp