Crashpad
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
crashpad::DirectPtraceConnection Class Reference

Manages a direct ptrace connection to a process. More...

#include "util/linux/direct_ptrace_connection.h"

Inheritance diagram for crashpad::DirectPtraceConnection:
[legend]
Collaboration diagram for crashpad::DirectPtraceConnection:
[legend]

Public Member Functions

 DirectPtraceConnection (const DirectPtraceConnection &)=delete
 
DirectPtraceConnectionoperator= (const DirectPtraceConnection &)=delete
 
bool Initialize (pid_t pid)
 Initializes this connection for the process whose process ID is pid.
 
pid_t GetProcessID () override
 Returns the process ID of the connected process.
 
bool Attach (pid_t tid) override
 Adds a new thread to this connection.
 
bool Is64Bit () override
 Returns true if connected to a 64-bit process.
 
bool GetThreadInfo (pid_t tid, ThreadInfo *info) override
 Retrieves a ThreadInfo for a target thread.
 
bool ReadFileContents (const base::FilePath &path, std::string *contents) override
 Reads the entire contents of a file.
 
ProcessMemoryLinuxMemory () override
 Returns a memory reader for the connected process.
 
bool Threads (std::vector< pid_t > *threads) override
 Determines the thread IDs of the threads in the connected process.
 
ssize_t ReadUpTo (VMAddress, size_t size, void *buffer) override
 Copies memory from the connected process into a caller-provided buffer in the current process, up to a maximum number of bytes.
 

Detailed Description

Manages a direct ptrace connection to a process.

This class is used when the current process has ptrace capabilities for the target process.

Member Function Documentation

◆ Attach()

bool crashpad::DirectPtraceConnection::Attach ( pid_t tid)
overridevirtual

Adds a new thread to this connection.

Parameters
[in]tidThe thread ID of the thread to attach.
Returns
true on success. false on failure with a message logged.

Implements crashpad::PtraceConnection.

◆ GetProcessID()

pid_t crashpad::DirectPtraceConnection::GetProcessID ( )
overridevirtual

Returns the process ID of the connected process.

Implements crashpad::PtraceConnection.

◆ GetThreadInfo()

bool crashpad::DirectPtraceConnection::GetThreadInfo ( pid_t tid,
ThreadInfo * info )
overridevirtual

Retrieves a ThreadInfo for a target thread.

Parameters
[in]tidThe thread ID of the target thread.
[out]infoInformation about the thread.
Returns
true on success. false on failure with a message logged.

Implements crashpad::PtraceConnection.

◆ Initialize()

bool crashpad::DirectPtraceConnection::Initialize ( pid_t pid)

Initializes this connection for the process whose process ID is pid.

The main thread of the process is automatically attached by this call.

Parameters
[in]pidThe process ID of the process to connect to.
Returns
true on success. false on failure with a message logged.

◆ Is64Bit()

bool crashpad::DirectPtraceConnection::Is64Bit ( )
overridevirtual

Returns true if connected to a 64-bit process.

Implements crashpad::PtraceConnection.

◆ Memory()

ProcessMemoryLinux * crashpad::DirectPtraceConnection::Memory ( )
overridevirtual

Returns a memory reader for the connected process.

The caller does not take ownership of the reader. The reader is valid for the lifetime of the PtraceConnection that created it.

Implements crashpad::PtraceConnection.

◆ ReadFileContents()

bool crashpad::DirectPtraceConnection::ReadFileContents ( const base::FilePath & path,
std::string * contents )
overridevirtual

Reads the entire contents of a file.

Parameters
[in]pathThe path of the file to read.
[out]contentsThe file contents, valid if this method returns true.
Returns
true on success. false on failure with a message logged.

Implements crashpad::PtraceConnection.

◆ ReadUpTo()

ssize_t crashpad::DirectPtraceConnection::ReadUpTo ( VMAddress address,
size_t size,
void * buffer )
overridevirtual

Copies memory from the connected process into a caller-provided buffer in the current process, up to a maximum number of bytes.

Parameters
[in]addressThe address, in the connected process' address space, of the memory region to copy.
[in]sizeThe maximum size, in bytes, of the memory region to copy. buffer must be at least this size.
[out]bufferThe buffer into which the contents of the other process' memory will be copied.
Returns
the number of bytes copied, 0 if there is no more data to read, or -1 on failure with a message logged.

Implements crashpad::PtraceConnection.

◆ Threads()

bool crashpad::DirectPtraceConnection::Threads ( std::vector< pid_t > * threads)
overridevirtual

Determines the thread IDs of the threads in the connected process.

Parameters
[out]threadsThe list of thread IDs.
Returns
true on success, false on failure with a message logged. If this method returns false, threads may contain a partial list of thread IDs.

Implements crashpad::PtraceConnection.


The documentation for this class was generated from the following files: