LLDB mainline
|
Manages communication with the inferior (debugee) process. More...
#include <NativeProcessAIX.h>
Classes | |
class | Manager |
Public Member Functions | |
~NativeProcessAIX () override | |
Status | Resume (const ResumeActionList &resume_actions) override |
Status | Halt () override |
Status | Detach () 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. | |
Status | Kill () override |
lldb::addr_t | GetSharedLibraryInfoAddress () override |
Status | ReadMemory (lldb::addr_t addr, void *buf, size_t size, size_t &bytes_read) override |
Status | WriteMemory (lldb::addr_t addr, const void *buf, size_t size, size_t &bytes_written) override |
size_t | UpdateThreads () override |
const ArchSpec & | GetArchitecture () const override |
Status | SetBreakpoint (lldb::addr_t addr, uint32_t size, bool hardware) override |
Status | RemoveBreakpoint (lldb::addr_t addr, bool hardware=false) override |
Status | GetLoadedModuleFileSpec (const char *module_path, FileSpec &file_spec) override |
llvm::ErrorOr< std::unique_ptr< llvm::MemoryBuffer > > | GetAuxvData () const override |
Status | GetFileLoadAddress (const llvm::StringRef &file_name, lldb::addr_t &load_addr) override |
bool | SupportHardwareSingleStepping () const |
Public Member Functions inherited from lldb_private::NativeProcessProtocol | |
virtual | ~NativeProcessProtocol ()=default |
virtual Status | IgnoreSignals (llvm::ArrayRef< int > signals) |
virtual Status | GetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo &range_info) |
Status | ReadMemoryWithoutTrap (lldb::addr_t addr, void *buf, size_t size, size_t &bytes_read) |
virtual Status | ReadMemoryTags (int32_t type, lldb::addr_t addr, size_t len, std::vector< uint8_t > &tags) |
virtual Status | WriteMemoryTags (int32_t type, lldb::addr_t addr, size_t len, const std::vector< uint8_t > &tags) |
llvm::Expected< llvm::StringRef > | ReadCStringFromMemory (lldb::addr_t addr, char *buffer, size_t max_size, size_t &total_bytes_read) |
Reads a null terminated string from memory. | |
virtual llvm::Expected< lldb::addr_t > | AllocateMemory (size_t size, uint32_t permissions) |
virtual llvm::Error | DeallocateMemory (lldb::addr_t addr) |
virtual llvm::Expected< std::vector< SVR4LibraryInfo > > | GetLoadedSVR4Libraries () |
virtual bool | IsAlive () const |
virtual const HardwareBreakpointMap & | GetHardwareBreakpointMap () const |
virtual Status | SetHardwareBreakpoint (lldb::addr_t addr, size_t size) |
virtual Status | RemoveHardwareBreakpoint (lldb::addr_t addr) |
virtual const NativeWatchpointList::WatchpointMap & | GetWatchpointMap () const |
virtual std::optional< std::pair< uint32_t, uint32_t > > | GetHardwareDebugSupportInfo () const |
virtual Status | SetWatchpoint (lldb::addr_t addr, size_t size, uint32_t watch_flags, bool hardware) |
virtual Status | RemoveWatchpoint (lldb::addr_t addr) |
lldb::pid_t | GetID () const |
lldb::StateType | GetState () const |
bool | IsRunning () const |
bool | IsStepping () const |
bool | CanResume () const |
lldb::ByteOrder | GetByteOrder () const |
uint32_t | GetAddressByteSize () const |
virtual std::optional< WaitStatus > | GetExitStatus () |
virtual bool | SetExitStatus (WaitStatus status, bool bNotifyStateChange) |
NativeThreadProtocol * | GetThreadAtIndex (uint32_t idx) |
NativeThreadProtocol * | GetThreadByID (lldb::tid_t tid) |
void | SetCurrentThreadID (lldb::tid_t tid) |
lldb::tid_t | GetCurrentThreadID () const |
NativeThreadProtocol * | GetCurrentThread () |
ThreadIterable | Threads () const |
virtual int | GetTerminalFileDescriptor () |
uint32_t | GetStopID () const |
virtual void | NotifyTracersProcessWillResume () |
Notify tracers that the target process will resume. | |
virtual void | NotifyTracersProcessDidStop () |
Notify tracers that the target process just stopped. | |
virtual llvm::Error | TraceStart (llvm::StringRef json_params, llvm::StringRef type) |
Start tracing a process or its threads. | |
virtual llvm::Error | TraceStop (const TraceStopRequest &request) |
Stop tracing a live process or its threads. | |
virtual llvm::Expected< llvm::json::Value > | TraceGetState (llvm::StringRef type) |
Get the current tracing state of the process and its threads. | |
virtual llvm::Expected< std::vector< uint8_t > > | TraceGetBinaryData (const TraceGetBinaryDataRequest &request) |
Get binary data given a trace technology and a data identifier. | |
virtual llvm::Expected< TraceSupportedResponse > | TraceSupported () |
Get the processor tracing type supported for this process. | |
virtual void | SetEnabledExtensions (Extension flags) |
Method called in order to propagate the bitmap of protocol extensions supported by the client. | |
virtual llvm::Expected< std::string > | SaveCore (llvm::StringRef path_hint) |
Write a core dump (without crashing the program). |
Static Public Member Functions | |
static llvm::Expected< int > | PtraceWrapper (int req, lldb::pid_t pid, void *addr=nullptr, void *data=nullptr, size_t data_size=0) |
Private Member Functions | |
NativeProcessAIX (::pid_t pid, int terminal_fd, NativeDelegate &delegate, const ArchSpec &arch, Manager &manager, llvm::ArrayRef<::pid_t > tids) | |
bool | TryHandleWaitStatus (lldb::pid_t pid, WaitStatus status) |
llvm::Error | Detach (lldb::tid_t tid) |
void | SigchldHandler () |
Static Private Member Functions | |
static llvm::Expected< std::vector<::pid_t > > | Attach (::pid_t pid) |
Private Attributes | |
Manager & | m_manager |
ArchSpec | m_arch |
Manages communication with the inferior (debugee) process.
Upon construction, this class prepares and launches an inferior process for debugging.
Changes in the inferior process state are broadcasted.
Definition at line 32 of file NativeProcessAIX.h.
|
inlineoverride |
Definition at line 64 of file NativeProcessAIX.h.
References m_manager.
|
private |
Definition at line 147 of file NativeProcessAIX.cpp.
References lldb_private::process_aix::NativeProcessAIX::Manager::AddProcess(), lldb::eStateStopped, m_arch, m_manager, lldb_private::NativeProcessProtocol::m_terminal_fd, lldb_private::NativeProcessProtocol::NativeProcessProtocol(), O_NONBLOCK, lldb_private::NativeProcessProtocol::SetCurrentThreadID(), SetFDFlags(), and lldb_private::NativeProcessProtocol::SetState().
Referenced by lldb_private::process_aix::NativeProcessAIX::Manager::AddProcess(), lldb_private::process_aix::NativeProcessAIX::Manager::Attach(), lldb_private::process_aix::NativeProcessAIX::Manager::Launch(), and lldb_private::process_aix::NativeProcessAIX::Manager::RemoveProcess().
Definition at line 162 of file NativeProcessAIX.cpp.
References lldb_private::GetLog(), LLDB_LOG, lldb_private::Process, and PtraceWrapper().
Referenced by lldb_private::process_aix::NativeProcessAIX::Manager::Attach().
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 184 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
private |
Definition at line 227 of file NativeProcessAIX.cpp.
References PtraceWrapper(), and lldb_private::Status::takeError().
|
inlineoverridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 88 of file NativeProcessAIX.h.
References m_arch.
|
inlineoverridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 99 of file NativeProcessAIX.h.
References lldb_private::NativeProcessProtocol::GetID(), and lldb_private::getProcFile().
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 209 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 108 of file NativeProcessAIX.cpp.
References LLDB_INVALID_ADDRESS.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 182 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Tells a process to interrupt all operations as if by a Ctrl-C.
The default implementation will send a local host's equivalent of a SIGSTOP to the process via the NativeProcessProtocol::Signal() operation.
Reimplemented from lldb_private::NativeProcessProtocol.
Definition at line 188 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 190 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
static |
Definition at line 231 of file NativeProcessAIX.cpp.
References lldb_private::GetLog(), LLDB_LOG, and lldb_private::Ptrace.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 192 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Reimplemented from lldb_private::NativeProcessProtocol.
Definition at line 221 of file NativeProcessAIX.cpp.
References lldb_private::NativeProcessProtocol::RemoveBreakpoint(), and lldb_private::NativeProcessProtocol::RemoveHardwareBreakpoint().
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 178 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 214 of file NativeProcessAIX.cpp.
References lldb_private::NativeProcessProtocol::SetHardwareBreakpoint(), and lldb_private::NativeProcessProtocol::SetSoftwareBreakpoint().
|
private |
|
overridevirtual |
Sends a process a UNIX signal signal.
Implements lldb_private::NativeProcessProtocol.
Definition at line 186 of file NativeProcessAIX.cpp.
References lldb_private::Status.
bool NativeProcessAIX::SupportHardwareSingleStepping | ( | ) | const |
Definition at line 176 of file NativeProcessAIX.cpp.
|
private |
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 202 of file NativeProcessAIX.cpp.
References lldb_private::NativeProcessProtocol::m_threads.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 197 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
private |
Definition at line 115 of file NativeProcessAIX.h.
Referenced by GetArchitecture(), and NativeProcessAIX().
|
private |
Definition at line 114 of file NativeProcessAIX.h.
Referenced by NativeProcessAIX(), and ~NativeProcessAIX().