9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEPROCESSAIX_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEPROCESSAIX_H
20#include "llvm/ADT/SmallPtrSet.h"
22#include <unordered_set>
38 llvm::Expected<std::unique_ptr<NativeProcessProtocol>>
42 llvm::Expected<std::unique_ptr<NativeProcessProtocol>>
81 size_t &bytes_read)
override;
84 size_t &bytes_written)
override;
91 bool hardware)
override;
98 llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
107 void *addr =
nullptr,
108 void *data =
nullptr,
109 size_t data_size = 0);
120 llvm::ArrayRef<::pid_t> tids);
125 static llvm::Expected<std::vector<::pid_t>>
Attach(::pid_t pid);
An architecture specification class.
std::unique_ptr< SignalHandle > SignalHandleUP
NativeProcessProtocol(lldb::pid_t pid, int terminal_fd, NativeDelegate &delegate)
lldb::pid_t GetID() const
void AddProcess(NativeProcessAIX &process)
llvm::Expected< std::unique_ptr< NativeProcessProtocol > > Launch(ProcessLaunchInfo &launch_info, NativeDelegate &native_delegate) override
Launch a process for debugging.
llvm::SmallPtrSet< NativeProcessAIX *, 2 > m_processes
Manager(MainLoop &mainloop)
void RemoveProcess(NativeProcessAIX &process)
llvm::Expected< std::unique_ptr< NativeProcessProtocol > > Attach(lldb::pid_t pid, NativeDelegate &native_delegate) override
Attach to an existing process.
MainLoop::SignalHandleUP m_sigchld_handle
void CollectThread(::pid_t tid)
Status ReadMemory(lldb::addr_t addr, void *buf, size_t size, size_t &bytes_read) override
static llvm::Expected< std::vector<::pid_t > > Attach(::pid_t pid)
Status WriteMemory(lldb::addr_t addr, const void *buf, size_t size, size_t &bytes_written) override
~NativeProcessAIX() override
const ArchSpec & GetArchitecture() const override
bool SupportHardwareSingleStepping() const
Status GetFileLoadAddress(const llvm::StringRef &file_name, lldb::addr_t &load_addr) override
Status RemoveBreakpoint(lldb::addr_t addr, bool hardware=false) override
size_t UpdateThreads() override
static llvm::Expected< int > PtraceWrapper(int req, lldb::pid_t pid, void *addr=nullptr, void *data=nullptr, size_t data_size=0)
Status GetLoadedModuleFileSpec(const char *module_path, FileSpec &file_spec) override
llvm::ErrorOr< std::unique_ptr< llvm::MemoryBuffer > > GetAuxvData() const override
Status Signal(int signo) override
Sends a process a UNIX signal signal.
Status Interrupt() override
Tells a process to interrupt all operations as if by a Ctrl-C.
lldb::addr_t GetSharedLibraryInfoAddress() override
Status Resume(const ResumeActionList &resume_actions) override
NativeProcessAIX(::pid_t pid, int terminal_fd, NativeDelegate &delegate, const ArchSpec &arch, Manager &manager, llvm::ArrayRef<::pid_t > tids)
Status SetBreakpoint(lldb::addr_t addr, uint32_t size, bool hardware) override
bool TryHandleWaitStatus(lldb::pid_t pid, WaitStatus status)
llvm::ErrorOr< std::unique_ptr< llvm::MemoryBuffer > > getProcFile(::pid_t pid, ::pid_t tid, const llvm::Twine &file)