|
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). | |
| virtual std::vector< std::string > | GetStructuredDataPlugins () |
| Get the list of structured data plugins supported by this process. | |
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 146 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 161 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 183 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
private |
Definition at line 263 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 245 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 107 of file NativeProcessAIX.cpp.
References LLDB_INVALID_ADDRESS.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 181 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 187 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 189 of file NativeProcessAIX.cpp.
References error(), lldb::eStateAttaching, lldb::eStateConnected, lldb::eStateCrashed, lldb::eStateDetached, lldb::eStateExited, lldb::eStateInvalid, lldb::eStateLaunching, lldb::eStateRunning, lldb::eStateStepping, lldb::eStateStopped, lldb::eStateSuspended, lldb::eStateUnloaded, lldb_private::NativeProcessProtocol::GetID(), lldb_private::GetLog(), LLDB_LOG, lldb_private::NativeProcessProtocol::m_state, lldb_private::Process, and PtraceWrapper().
|
static |
Definition at line 267 of file NativeProcessAIX.cpp.
References lldb_private::GetLog(), LLDB_LOG, and lldb_private::Ptrace.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 228 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Reimplemented from lldb_private::NativeProcessProtocol.
Definition at line 257 of file NativeProcessAIX.cpp.
References lldb_private::NativeProcessProtocol::RemoveBreakpoint(), and lldb_private::NativeProcessProtocol::RemoveHardwareBreakpoint().
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 177 of file NativeProcessAIX.cpp.
References lldb_private::Status.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 250 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 185 of file NativeProcessAIX.cpp.
References lldb_private::Status.
| bool NativeProcessAIX::SupportHardwareSingleStepping | ( | ) | const |
Definition at line 175 of file NativeProcessAIX.cpp.
|
private |
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 238 of file NativeProcessAIX.cpp.
References lldb_private::NativeProcessProtocol::m_threads.
|
overridevirtual |
Implements lldb_private::NativeProcessProtocol.
Definition at line 233 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().