class LinuxProcessHandle

Defined at line 19 of file ../../src/developer/debug/debug_agent/linux_process_handle.h

The details of a Linux process/thread is stored in a "Task". This object wraps a Task and

implements the ProcessHandle functions for it.

Public Methods

const NativeProcessHandle & GetNativeHandle ()

ProcessHandle implementation.

Defined at line 29 of file ../../src/developer/debug/debug_agent/linux_process_handle.h

NativeProcessHandle & GetNativeHandle ()

Defined at line 30 of file ../../src/developer/debug/debug_agent/linux_process_handle.h

zx_koid_t GetKoid ()

Defined at line 31 of file ../../src/developer/debug/debug_agent/linux_process_handle.h

zx_koid_t GetJobKoid ()

Defined at line 34 of file ../../src/developer/debug/debug_agent/linux_process_handle.h

int64_t GetReturnCode ()

Defined at line 36 of file ../../src/developer/debug/debug_agent/linux_process_handle.h

void LinuxProcessHandle (fxl::RefPtr<LinuxTask> task)

Defined at line 59 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

void ~LinuxProcessHandle ()

Defined at line 63 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

std::string GetName ()

Defined at line 65 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

std::vector<std::unique_ptr<ThreadHandle>> GetChildThreads ()

Defined at line 73 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

debug::Status Kill ()

Defined at line 91 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

debug::Status Attach (ProcessHandleObserver * observer, AttachConfig config)

Defined at line 98 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

bool IsAttached ()

Defined at line 103 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

void Detach ()

Defined at line 105 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

uint64_t GetLoaderBreakpointAddress ()

Defined at line 107 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

std::vector<debug_ipc::AddressRegion> GetAddressSpace (uint64_t address)

Defined at line 111 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

std::optional<debug_ipc::AddressRegion> GetSharedAddressSpace ()

Defined at line 131 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

std::vector<debug_ipc::Module> GetModules ()

Defined at line 136 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

fit::result<debug::Status, std::vector<debug_ipc::InfoHandle>> GetHandles ()

Defined at line 140 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

debug::Status ReadMemory (uintptr_t address, void * buffer, size_t len, size_t * actual)

Defined at line 146 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

debug::Status WriteMemory (uintptr_t address, const void * buffer, size_t len, size_t * actual)

Defined at line 164 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

std::vector<debug_ipc::MemoryBlock> ReadMemoryBlocks (uint64_t address, uint32_t size)

Defined at line 179 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

debug::Status SaveMinidump (const std::vector<DebuggedThread *> & threads, std::vector<uint8_t> * core_data)

Defined at line 199 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc

debug::Status WriteMemoryByWord (pid_t pid, uintptr_t address, const void * buffer, size_t len, ReadWordFunc read_fn, WriteWordFunc write_fn, size_t * actual)

Writes a byte buffer using word-aligned read/write functions.

In use, WriteMemory() will call this and provide read/write implementations via ptrace. But

this structure allows us to more easily unit test the edge cases in process.

Defined at line 205 of file ../../src/developer/debug/debug_agent/linux_process_handle.cc