LLDB mainline
NativeProcessLinux.cpp File Reference
#include "NativeProcessLinux.h"
#include <cerrno>
#include <cstdint>
#include <cstring>
#include <unistd.h>
#include <fstream>
#include <mutex>
#include <optional>
#include <sstream>
#include <string>
#include <unordered_map>
#include "NativeThreadLinux.h"
#include "Plugins/Process/POSIX/ProcessPOSIXLog.h"
#include "Plugins/Process/Utility/LinuxProcMaps.h"
#include "Procfs.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/HostProcess.h"
#include "lldb/Host/ProcessLaunchInfo.h"
#include "lldb/Host/PseudoTerminal.h"
#include "lldb/Host/ThreadLauncher.h"
#include "lldb/Host/common/NativeRegisterContext.h"
#include "lldb/Host/linux/Host.h"
#include "lldb/Host/linux/Ptrace.h"
#include "lldb/Host/linux/Uio.h"
#include "lldb/Host/posix/ProcessLauncherPosixFork.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/LLDBAssert.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/State.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/StringExtractor.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/Support/Errno.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Threading.h"
#include <linux/unistd.h>
#include <sys/socket.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/user.h>
#include <sys/wait.h>

Go to the source code of this file.

Macros

#define TRAP_HWBKPT   4
#define HWCAP2_MTE   (1 << 18)

Functions

static bool ProcessVmReadvSupported ()
static void MaybeLogLaunchInfo (const ProcessLaunchInfo &info)
static void DisplayBytes (StreamString &s, void *bytes, uint32_t count)
static void PtraceDisplayBytes (int &req, void *data, size_t data_size)
static Status EnsureFDFlags (int fd, int flags)
static llvm::Error AddPtraceScopeNote (llvm::Error original_error)
static std::optional< std::pair< lldb::pid_t, WaitStatus > > WaitPid ()

Variables

static constexpr unsigned k_ptrace_word_size = sizeof(void *)

Macro Definition Documentation

◆ HWCAP2_MTE

◆ TRAP_HWBKPT

#define TRAP_HWBKPT   4

Function Documentation

◆ AddPtraceScopeNote()

◆ DisplayBytes()

void DisplayBytes ( StreamString & s,
void * bytes,
uint32_t count )
static

Definition at line 139 of file NativeProcessLinux.cpp.

References DEBUG_PTRACE_MAXBYTES, and lldb_private::Stream::Printf().

Referenced by PtraceDisplayBytes().

◆ EnsureFDFlags()

Status EnsureFDFlags ( int fd,
int flags )
static

Definition at line 201 of file NativeProcessLinux.cpp.

References error(), and lldb_private::Status::FromErrno().

◆ MaybeLogLaunchInfo()

◆ ProcessVmReadvSupported()

bool ProcessVmReadvSupported ( )
static

◆ PtraceDisplayBytes()

◆ WaitPid()

std::optional< std::pair< lldb::pid_t, WaitStatus > > WaitPid ( )
static

Variable Documentation

◆ k_ptrace_word_size

unsigned k_ptrace_word_size = sizeof(void *)
staticconstexpr

Definition at line 195 of file NativeProcessLinux.cpp.