LLDB mainline
|
#include <ProcessGDBRemote.h>
Classes | |
struct | ModuleCacheInfo |
Public Member Functions | |
~ProcessGDBRemote () override | |
ArchSpec | GetSystemArchitecture () override |
Get the system architecture for this process. | |
bool | CanDebug (lldb::TargetSP target_sp, bool plugin_specified_by_name) override |
Check if a plug-in instance can debug the file in module. | |
CommandObject * | GetPluginCommandObject () override |
Return a multi-word command object that can be used to expose plug-in specific commands. | |
void | DumpPluginHistory (Stream &s) override |
The underlying plugin might store the low-level communication history for this session. | |
Status | DoWillLaunch (Module *module) override |
Called before launching to a process. | |
Status | DoLaunch (Module *exe_module, ProcessLaunchInfo &launch_info) override |
Launch a new process. | |
void | DidLaunch () override |
Called after launching a process. | |
Status | DoWillAttachToProcessWithID (lldb::pid_t pid) override |
Called before attaching to a process. | |
Status | DoWillAttachToProcessWithName (const char *process_name, bool wait_for_launch) override |
Called before attaching to a process. | |
Status | DoConnectRemote (llvm::StringRef remote_url) override |
Attach to a remote system via a URL. | |
Status | WillLaunchOrAttach () |
Status | DoAttachToProcessWithID (lldb::pid_t pid, const ProcessAttachInfo &attach_info) override |
Attach to an existing process using a process ID. | |
Status | DoAttachToProcessWithName (const char *process_name, const ProcessAttachInfo &attach_info) override |
Attach to an existing process using a partial process name. | |
void | DidAttach (ArchSpec &process_arch) override |
Called after attaching a process. | |
llvm::StringRef | GetPluginName () override |
Status | WillResume () override |
Called before resuming to a process. | |
Status | DoResume () override |
Resumes all of a process's threads as configured using the Thread run control functions. | |
Status | DoHalt (bool &caused_stop) override |
Halts a running process. | |
Status | DoDetach (bool keep_stopped) override |
Detaches from a running or stopped process. | |
bool | DetachRequiresHalt () override |
Status | DoSignal (int signal) override |
Sends a process a UNIX signal signal. | |
Status | DoDestroy () override |
void | RefreshStateAfterStop () override |
Currently called as part of ShouldStop. | |
void | SetUnixSignals (const lldb::UnixSignalsSP &signals_sp) |
bool | IsAlive () override |
Check if a process is still alive. | |
lldb::addr_t | GetImageInfoAddress () override |
Get the image information address for the current process. | |
void | WillPublicStop () override |
Called when the process is about to broadcast a public stop. | |
size_t | DoReadMemory (lldb::addr_t addr, void *buf, size_t size, Status &error) override |
Actually do the reading of memory from a process. | |
Status | WriteObjectFile (std::vector< ObjectFile::LoadableData > entries) override |
size_t | DoWriteMemory (lldb::addr_t addr, const void *buf, size_t size, Status &error) override |
Actually do the writing of memory to a process. | |
lldb::addr_t | DoAllocateMemory (size_t size, uint32_t permissions, Status &error) override |
Actually allocate memory in the process. | |
Status | DoDeallocateMemory (lldb::addr_t ptr) override |
Actually deallocate memory in the process. | |
size_t | PutSTDIN (const char *buf, size_t buf_size, Status &error) override |
Puts data into this process's STDIN. | |
Status | EnableBreakpointSite (BreakpointSite *bp_site) override |
Status | DisableBreakpointSite (BreakpointSite *bp_site) override |
Status | EnableWatchpoint (lldb::WatchpointSP wp_sp, bool notify=true) override |
Status | DisableWatchpoint (lldb::WatchpointSP wp_sp, bool notify=true) override |
std::optional< uint32_t > | GetWatchpointSlotCount () override |
Get the number of watchpoints supported by this target. | |
llvm::Expected< TraceSupportedResponse > | TraceSupported () override |
Get the processor tracing type supported for this process. | |
llvm::Error | TraceStop (const TraceStopRequest &request) override |
Stop tracing a live process or its threads. | |
llvm::Error | TraceStart (const llvm::json::Value &request) override |
Start tracing a process or its threads. | |
llvm::Expected< std::string > | TraceGetState (llvm::StringRef type) override |
Get the current tracing state of the process and its threads. | |
llvm::Expected< std::vector< uint8_t > > | TraceGetBinaryData (const TraceGetBinaryDataRequest &request) override |
Get binary data given a trace technology and a data identifier. | |
std::optional< bool > | DoGetWatchpointReportedAfter () override |
Provide an override value in the subclass for lldb's CPU-based logic for whether watchpoint exceptions are received before or after an instruction executes. | |
bool | StartNoticingNewThreads () override |
Call this to set the lldb in the mode where it breaks on new thread creations, and then auto-restarts. | |
bool | StopNoticingNewThreads () override |
Call this to turn off the stop & notice new threads mode. | |
GDBRemoteCommunicationClient & | GetGDBRemote () |
Status | SendEventData (const char *data) override |
void | DidExit () override |
void | SetUserSpecifiedMaxMemoryTransferSize (uint64_t user_specified_max) |
bool | GetModuleSpec (const FileSpec &module_file_spec, const ArchSpec &arch, ModuleSpec &module_spec) override |
Try to fetch the module specification for a module with the given file name and architecture. | |
void | PrefetchModuleSpecs (llvm::ArrayRef< FileSpec > module_file_specs, const llvm::Triple &triple) override |
llvm::VersionTuple | GetHostOSVersion () override |
Sometimes the connection to a process can detect the host OS version that the process is running on. | |
llvm::VersionTuple | GetHostMacCatalystVersion () override |
llvm::Error | LoadModules () override |
Sometimes processes know how to retrieve and load shared libraries. | |
llvm::Expected< LoadedModuleInfoList > | GetLoadedModuleList () override |
Query remote GDBServer for a detailed loaded library list. | |
Status | GetFileLoadAddress (const FileSpec &file, bool &is_loaded, lldb::addr_t &load_addr) override |
Try to find the load address of a file. | |
void | ModulesDidLoad (ModuleList &module_list) override |
StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos (lldb::addr_t image_list_address, lldb::addr_t image_count) override |
Retrieve the list of shared libraries that are loaded for this process This method is used on pre-macOS 10.12, pre-iOS 10, pre-tvOS 10, pre- watchOS 3 systems. | |
Status | ConfigureStructuredData (llvm::StringRef type_name, const StructuredData::ObjectSP &config_sp) override |
Configure asynchronous structured data feature. | |
StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos () override |
StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos (const std::vector< lldb::addr_t > &load_addresses) override |
StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos_sender (StructuredData::ObjectSP args) |
StructuredData::ObjectSP | GetSharedCacheInfo () override |
StructuredData::ObjectSP | GetDynamicLoaderProcessState () override |
std::string | HarmonizeThreadIdsForProfileData (StringExtractorGDBRemote &inputStringExtractor) |
void | DidFork (lldb::pid_t child_pid, lldb::tid_t child_tid) override |
Called after a reported fork. | |
void | DidVFork (lldb::pid_t child_pid, lldb::tid_t child_tid) override |
Called after a reported vfork. | |
void | DidVForkDone () override |
Called after reported vfork completion. | |
void | DidExec () override |
Called after a process re-execs itself. | |
llvm::Expected< bool > | SaveCore (llvm::StringRef outfile) override |
Save core dump into the specified file. | |
Public Member Functions inherited from lldb_private::Process | |
llvm::StringRef | GetBroadcasterClass () const override |
This needs to be filled in if you are going to register the broadcaster with the broadcaster manager and do broadcaster class matching. | |
~Process () override | |
Destructor. | |
lldb::ByteOrder | GetByteOrder () const |
uint32_t | GetAddressByteSize () const |
lldb::pid_t | GetID () const |
Returns the pid of the process or LLDB_INVALID_PROCESS_ID if there is no known pid. | |
void | SetID (lldb::pid_t new_pid) |
Sets the stored pid. | |
uint32_t | GetUniqueID () const |
virtual bool | CanDebug (lldb::TargetSP target, bool plugin_specified_by_name)=0 |
Check if a plug-in instance can debug the file in module. | |
virtual void | Finalize (bool destructing) |
This object is about to be destroyed, do any necessary cleanup. | |
bool | IsValid () const |
Return whether this object is valid (i.e. | |
virtual CommandObject * | GetPluginCommandObject () |
Return a multi-word command object that can be used to expose plug-in specific commands. | |
virtual void | DumpPluginHistory (Stream &s) |
The underlying plugin might store the low-level communication history for this session. | |
virtual Status | Launch (ProcessLaunchInfo &launch_info) |
Launch a new process. | |
virtual Status | LoadCore () |
virtual Status | DoLoadCore () |
void | SetShadowListener (lldb::ListenerSP shadow_listener_sp) |
The "ShadowListener" for a process is just an ordinary Listener that listens for all the Process event bits. | |
UtilityFunction * | GetLoadImageUtilityFunction (Platform *platform, llvm::function_ref< std::unique_ptr< UtilityFunction >()> factory) |
Get the cached UtilityFunction that assists in loading binary images into the process. | |
virtual DynamicLoader * | GetDynamicLoader () |
Get the dynamic loader plug-in for this process. | |
void | SetDynamicLoader (lldb::DynamicLoaderUP dyld) |
virtual DataExtractor | GetAuxvData () |
virtual llvm::Error | LoadModules () |
Sometimes processes know how to retrieve and load shared libraries. | |
virtual llvm::Expected< LoadedModuleInfoList > | GetLoadedModuleList () |
Query remote GDBServer for a detailed loaded library list. | |
virtual llvm::Expected< bool > | SaveCore (llvm::StringRef outfile) |
Save core dump into the specified file. | |
Status | CalculateCoreFileSaveRanges (const SaveCoreOptions &core_options, CoreFileMemoryRanges &ranges) |
Helper function for Process::SaveCore(...) that calculates the address ranges that should be saved. | |
std::vector< lldb::ThreadSP > | CalculateCoreFileThreadList (const SaveCoreOptions &core_options) |
Helper function for Process::SaveCore(...) that calculates the thread list based upon options set within a given core_options object. | |
virtual ArchSpec | GetSystemArchitecture () |
Get the system architecture for this process. | |
virtual SystemRuntime * | GetSystemRuntime () |
Get the system runtime plug-in for this process. | |
virtual Status | Attach (ProcessAttachInfo &attach_info) |
Attach to an existing process using the process attach info. | |
virtual Status | ConnectRemote (llvm::StringRef remote_url) |
Attach to a remote system via a URL. | |
bool | GetShouldDetach () const |
void | SetShouldDetach (bool b) |
const std::vector< lldb::addr_t > & | GetImageTokens () |
Get the image vector for the current process. | |
virtual lldb::addr_t | GetImageInfoAddress () |
Get the image information address for the current process. | |
virtual void | WillPublicStop () |
Called when the process is about to broadcast a public stop. | |
void | RegisterNotificationCallbacks (const Process::Notifications &callbacks) |
Register for process and thread notifications. | |
bool | UnregisterNotificationCallbacks (const Process::Notifications &callbacks) |
Unregister for process and thread notifications. | |
Status | Resume () |
Resumes all of a process's threads as configured using the Thread run control functions. | |
Status | ResumeSynchronous (Stream *stream) |
Resume a process, and wait for it to stop. | |
Status | Halt (bool clear_thread_plans=false, bool use_run_lock=true) |
Halts a running process. | |
Status | Detach (bool keep_stopped) |
Detaches from a running or stopped process. | |
Status | Destroy (bool force_kill) |
Kills the process and shuts down all threads that were spawned to track and monitor the process. | |
Status | Signal (int signal) |
Sends a process a UNIX signal signal. | |
void | SetUnixSignals (lldb::UnixSignalsSP &&signals_sp) |
const lldb::UnixSignalsSP & | GetUnixSignals () |
Status | WillAttachToProcessWithID (lldb::pid_t pid) |
Called before attaching to a process. | |
virtual Status | DoWillAttachToProcessWithID (lldb::pid_t pid) |
Called before attaching to a process. | |
Status | WillAttachToProcessWithName (const char *process_name, bool wait_for_launch) |
Called before attaching to a process. | |
virtual Status | DoWillAttachToProcessWithName (const char *process_name, bool wait_for_launch) |
Called before attaching to a process. | |
virtual Status | DoConnectRemote (llvm::StringRef remote_url) |
Attach to a remote system via a URL. | |
virtual Status | DoAttachToProcessWithID (lldb::pid_t pid, const ProcessAttachInfo &attach_info) |
Attach to an existing process using a process ID. | |
virtual Status | DoAttachToProcessWithName (const char *process_name, const ProcessAttachInfo &attach_info) |
Attach to an existing process using a partial process name. | |
virtual void | DidAttach (ArchSpec &process_arch) |
Called after attaching a process. | |
virtual void | DidExec () |
Called after a process re-execs itself. | |
virtual void | DoDidExec () |
Subclasses of Process should implement this function if they need to do anything after a process exec's itself. | |
virtual void | DidFork (lldb::pid_t child_pid, lldb::tid_t child_tid) |
Called after a reported fork. | |
virtual void | DidVFork (lldb::pid_t child_pid, lldb::tid_t child_tid) |
Called after a reported vfork. | |
virtual void | DidVForkDone () |
Called after reported vfork completion. | |
Status | WillLaunch (Module *module) |
Called before launching to a process. | |
virtual Status | DoWillLaunch (Module *module) |
Called before launching to a process. | |
virtual Status | DoLaunch (Module *exe_module, ProcessLaunchInfo &launch_info) |
Launch a new process. | |
virtual void | DidLaunch () |
Called after launching a process. | |
virtual Status | WillResume () |
Called before resuming to a process. | |
virtual Status | DoResume () |
Resumes all of a process's threads as configured using the Thread run control functions. | |
virtual void | DidResume () |
Called after resuming a process. | |
virtual Status | WillHalt () |
Called before halting to a process. | |
virtual Status | DoHalt (bool &caused_stop) |
Halts a running process. | |
virtual void | DidHalt () |
Called after halting a process. | |
virtual Status | WillDetach () |
Called before detaching from a process. | |
virtual Status | DoDetach (bool keep_stopped) |
Detaches from a running or stopped process. | |
virtual void | DidDetach () |
Called after detaching from a process. | |
virtual bool | DetachRequiresHalt () |
virtual Status | WillSignal () |
Called before sending a signal to a process. | |
virtual Status | DoSignal (int signal) |
Sends a process a UNIX signal signal. | |
virtual Status | WillDestroy () |
virtual Status | DoDestroy ()=0 |
virtual void | DidDestroy () |
virtual bool | DestroyRequiresHalt () |
virtual void | DidSignal () |
Called after sending a signal to a process. | |
virtual void | RefreshStateAfterStop ()=0 |
Currently called as part of ShouldStop. | |
virtual llvm::VersionTuple | GetHostOSVersion () |
Sometimes the connection to a process can detect the host OS version that the process is running on. | |
virtual llvm::VersionTuple | GetHostMacCatalystVersion () |
Target & | GetTarget () |
Get the target object pointer for this module. | |
const Target & | GetTarget () const |
Get the const target object pointer for this module. | |
void | Flush () |
Flush all data in the process. | |
lldb::StateType | GetState () |
Get accessor for the current process state. | |
lldb::ExpressionResults | RunThreadPlan (ExecutionContext &exe_ctx, lldb::ThreadPlanSP &thread_plan_sp, const EvaluateExpressionOptions &options, DiagnosticManager &diagnostic_manager) |
void | GetStatus (Stream &ostrm) |
size_t | GetThreadStatus (Stream &ostrm, bool only_threads_with_stop_reason, uint32_t start_frame, uint32_t num_frames, uint32_t num_frames_with_source, bool stop_format) |
void | SendAsyncInterrupt (Thread *thread=nullptr) |
Send an async interrupt request. | |
virtual void | ModulesDidLoad (ModuleList &module_list) |
virtual lldb_private::StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos (lldb::addr_t image_list_address, lldb::addr_t image_count) |
Retrieve the list of shared libraries that are loaded for this process This method is used on pre-macOS 10.12, pre-iOS 10, pre-tvOS 10, pre- watchOS 3 systems. | |
virtual lldb_private::StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos () |
virtual lldb_private::StructuredData::ObjectSP | GetLoadedDynamicLibrariesInfos (const std::vector< lldb::addr_t > &load_addresses) |
virtual lldb_private::StructuredData::ObjectSP | GetSharedCacheInfo () |
virtual lldb_private::StructuredData::ObjectSP | GetDynamicLoaderProcessState () |
void | PrintWarningOptimization (const SymbolContext &sc) |
Print a user-visible warning about a module being built with optimization. | |
void | PrintWarningUnsupportedLanguage (const SymbolContext &sc) |
Print a user-visible warning about a function written in a language that this version of LLDB doesn't support. | |
virtual bool | GetProcessInfo (ProcessInstanceInfo &info) |
int | GetExitStatus () |
Get the exit status for a process. | |
const char * | GetExitDescription () |
Get a textual description of what the process exited. | |
virtual void | DidExit () |
lldb::addr_t | GetCodeAddressMask () |
Get the current address mask in the Process. | |
lldb::addr_t | GetDataAddressMask () |
lldb::addr_t | GetHighmemCodeAddressMask () |
The highmem masks are for targets where we may have different masks for low memory versus high memory addresses, and they will be left as LLDB_INVALID_ADDRESS_MASK normally, meaning the base masks should be applied to all addresses. | |
lldb::addr_t | GetHighmemDataAddressMask () |
void | SetCodeAddressMask (lldb::addr_t code_address_mask) |
void | SetDataAddressMask (lldb::addr_t data_address_mask) |
void | SetHighmemCodeAddressMask (lldb::addr_t code_address_mask) |
void | SetHighmemDataAddressMask (lldb::addr_t data_address_mask) |
lldb::addr_t | FixCodeAddress (lldb::addr_t pc) |
Some targets might use bits in a code address to indicate a mode switch, ARM uses bit zero to signify a code address is thumb, so any ARM ABI plug-ins would strip those bits. | |
lldb::addr_t | FixDataAddress (lldb::addr_t pc) |
lldb::addr_t | FixAnyAddress (lldb::addr_t pc) |
Use this method when you do not know, or do not care what kind of address you are fixing. | |
ProcessModID | GetModID () const |
Get the Modification ID of the process. | |
const ProcessModID & | GetModIDRef () const |
uint32_t | GetStopID () const |
uint32_t | GetResumeID () const |
uint32_t | GetLastUserExpressionResumeID () const |
uint32_t | GetLastNaturalStopID () const |
lldb::EventSP | GetStopEventForStopID (uint32_t stop_id) const |
virtual bool | SetExitStatus (int exit_status, llvm::StringRef exit_string) |
Set accessor for the process exit status (return code). | |
virtual bool | IsAlive () |
Check if a process is still alive. | |
virtual bool | IsLiveDebugSession () const |
virtual FileSpec | GetCoreFile () const |
Provide a way to retrieve the core dump file that is loaded for debugging. | |
virtual bool | WarnBeforeDetach () const |
Before lldb detaches from a process, it warns the user that they are about to lose their debug session. | |
virtual size_t | ReadMemory (lldb::addr_t vm_addr, void *buf, size_t size, Status &error) |
Read of memory from a process. | |
size_t | ReadMemoryFromInferior (lldb::addr_t vm_addr, void *buf, size_t size, Status &error) |
Read of memory from a process. | |
size_t | ReadCStringFromMemory (lldb::addr_t vm_addr, char *cstr, size_t cstr_max_len, Status &error) |
Read a NULL terminated C string from memory. | |
size_t | ReadCStringFromMemory (lldb::addr_t vm_addr, std::string &out_str, Status &error) |
uint64_t | ReadUnsignedIntegerFromMemory (lldb::addr_t load_addr, size_t byte_size, uint64_t fail_value, Status &error) |
Reads an unsigned integer of the specified byte size from process memory. | |
int64_t | ReadSignedIntegerFromMemory (lldb::addr_t load_addr, size_t byte_size, int64_t fail_value, Status &error) |
lldb::addr_t | ReadPointerFromMemory (lldb::addr_t vm_addr, Status &error) |
bool | WritePointerToMemory (lldb::addr_t vm_addr, lldb::addr_t ptr_value, Status &error) |
virtual size_t | DoWriteMemory (lldb::addr_t vm_addr, const void *buf, size_t size, Status &error) |
Actually do the writing of memory to a process. | |
size_t | WriteScalarToMemory (lldb::addr_t vm_addr, const Scalar &scalar, size_t size, Status &error) |
Write all or part of a scalar value to memory. | |
size_t | ReadScalarIntegerFromMemory (lldb::addr_t addr, uint32_t byte_size, bool is_signed, Scalar &scalar, Status &error) |
size_t | WriteMemory (lldb::addr_t vm_addr, const void *buf, size_t size, Status &error) |
Write memory to a process. | |
virtual lldb::addr_t | DoAllocateMemory (size_t size, uint32_t permissions, Status &error) |
Actually allocate memory in the process. | |
virtual Status | WriteObjectFile (std::vector< ObjectFile::LoadableData > entries) |
lldb::addr_t | AllocateMemory (size_t size, uint32_t permissions, Status &error) |
The public interface to allocating memory in the process. | |
lldb::addr_t | CallocateMemory (size_t size, uint32_t permissions, Status &error) |
The public interface to allocating memory in the process, this also clears the allocated memory. | |
llvm::Expected< const MemoryTagManager * > | GetMemoryTagManager () |
If this architecture and process supports memory tagging, return a tag manager that can be used to maniupulate those memory tags. | |
virtual llvm::Expected< std::vector< lldb::addr_t > > | ReadMemoryTags (lldb::addr_t addr, size_t len) |
Read memory tags for the range addr to addr+len. | |
Status | WriteMemoryTags (lldb::addr_t addr, size_t len, const std::vector< lldb::addr_t > &tags) |
Write memory tags for a range of memory. | |
virtual lldb::addr_t | ResolveIndirectFunction (const Address *address, Status &error) |
Resolve dynamically loaded indirect functions. | |
Status | GetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo &range_info) |
Locate the memory region that contains load_addr. | |
virtual Status | GetMemoryRegions (lldb_private::MemoryRegionInfos ®ion_list) |
Obtain all the mapped memory regions within this process. | |
virtual std::optional< uint32_t > | GetWatchpointSlotCount () |
Get the number of watchpoints supported by this target. | |
bool | GetWatchpointReportedAfter () |
Whether lldb will be notified about watchpoints after the instruction has completed executing, or if the instruction is rolled back and it is notified before it executes. | |
lldb::ModuleSP | ReadModuleFromMemory (const FileSpec &file_spec, lldb::addr_t header_addr, size_t size_to_read=512) |
virtual bool | GetLoadAddressPermissions (lldb::addr_t load_addr, uint32_t &permissions) |
Attempt to get the attributes for a region of memory in the process. | |
bool | CanJIT () |
Determines whether executing JIT-compiled code in this process is possible. | |
void | SetCanJIT (bool can_jit) |
Sets whether executing JIT-compiled code in this process is possible. | |
bool | CanInterpretFunctionCalls () |
Determines whether executing function calls using the interpreter is possible for this process. | |
void | SetCanInterpretFunctionCalls (bool can_interpret_function_calls) |
Sets whether executing function calls using the interpreter is possible for this process. | |
void | SetCanRunCode (bool can_run_code) |
Sets whether executing code in this process is possible. | |
virtual Status | DoDeallocateMemory (lldb::addr_t ptr) |
Actually deallocate memory in the process. | |
Status | DeallocateMemory (lldb::addr_t ptr) |
The public interface to deallocating memory in the process. | |
virtual size_t | GetSTDOUT (char *buf, size_t buf_size, Status &error) |
Get any available STDOUT. | |
virtual size_t | GetSTDERR (char *buf, size_t buf_size, Status &error) |
Get any available STDERR. | |
virtual size_t | PutSTDIN (const char *buf, size_t buf_size, Status &error) |
Puts data into this process's STDIN. | |
virtual size_t | GetAsyncProfileData (char *buf, size_t buf_size, Status &error) |
Get any available profile data. | |
size_t | GetSoftwareBreakpointTrapOpcode (BreakpointSite *bp_site) |
virtual Status | EnableBreakpointSite (BreakpointSite *bp_site) |
virtual Status | DisableBreakpointSite (BreakpointSite *bp_site) |
virtual Status | EnableSoftwareBreakpoint (BreakpointSite *bp_site) |
virtual Status | DisableSoftwareBreakpoint (BreakpointSite *bp_site) |
StopPointSiteList< lldb_private::BreakpointSite > & | GetBreakpointSiteList () |
const StopPointSiteList< lldb_private::BreakpointSite > & | GetBreakpointSiteList () const |
void | DisableAllBreakpointSites () |
Status | ClearBreakpointSiteByID (lldb::user_id_t break_id) |
lldb::break_id_t | CreateBreakpointSite (const lldb::BreakpointLocationSP &owner, bool use_hardware) |
Status | DisableBreakpointSiteByID (lldb::user_id_t break_id) |
Status | EnableBreakpointSiteByID (lldb::user_id_t break_id) |
void | RemoveConstituentFromBreakpointSite (lldb::user_id_t site_id, lldb::user_id_t constituent_id, lldb::BreakpointSiteSP &bp_site_sp) |
virtual Status | EnableWatchpoint (lldb::WatchpointSP wp_sp, bool notify=true) |
virtual Status | DisableWatchpoint (lldb::WatchpointSP wp_sp, bool notify=true) |
bool | UpdateThreadList (ThreadList &old_thread_list, ThreadList &new_thread_list) |
Update the thread list. | |
void | UpdateThreadListIfNeeded () |
ThreadList & | GetThreadList () |
StopPointSiteList< lldb_private::WatchpointResource > & | GetWatchpointResourceList () |
ThreadList & | GetExtendedThreadList () |
ThreadList::ThreadIterable | Threads () |
uint32_t | GetNextThreadIndexID (uint64_t thread_id) |
lldb::ThreadSP | CreateOSPluginThread (lldb::tid_t tid, lldb::addr_t context) |
bool | HasAssignedIndexIDToThread (uint64_t sb_thread_id) |
uint32_t | AssignIndexIDToThread (uint64_t thread_id) |
virtual void | UpdateQueueListIfNeeded () |
QueueList & | GetQueueList () |
QueueList::QueueIterable | Queues () |
lldb::StateType | GetNextEvent (lldb::EventSP &event_sp) |
lldb::StateType | WaitForProcessToStop (const Timeout< std::micro > &timeout, lldb::EventSP *event_sp_ptr=nullptr, bool wait_always=true, lldb::ListenerSP hijack_listener=lldb::ListenerSP(), Stream *stream=nullptr, bool use_run_lock=true, SelectMostRelevant select_most_relevant=DoNoSelectMostRelevantFrame) |
uint32_t | GetIOHandlerID () const |
void | SyncIOHandler (uint32_t iohandler_id, const Timeout< std::micro > &timeout) |
Waits for the process state to be running within a given msec timeout. | |
lldb::StateType | GetStateChangedEvents (lldb::EventSP &event_sp, const Timeout< std::micro > &timeout, lldb::ListenerSP hijack_listener) |
Event * | PeekAtStateChangedEvents () |
bool | HijackProcessEvents (lldb::ListenerSP listener_sp) |
If you need to ensure that you and only you will hear about some public event, then make a new listener, set to listen to process events, and then call this with that listener. | |
void | RestoreProcessEvents () |
Restores the process event broadcasting to its normal state. | |
bool | StateChangedIsHijackedForSynchronousResume () |
bool | StateChangedIsExternallyHijacked () |
const lldb::ABISP & | GetABI () |
OperatingSystem * | GetOperatingSystem () |
std::vector< LanguageRuntime * > | GetLanguageRuntimes () |
LanguageRuntime * | GetLanguageRuntime (lldb::LanguageType language) |
bool | IsPossibleDynamicValue (ValueObject &in_value) |
bool | IsRunning () const |
DynamicCheckerFunctions * | GetDynamicCheckers () |
void | SetDynamicCheckers (DynamicCheckerFunctions *dynamic_checkers) |
bool | PruneThreadPlansForTID (lldb::tid_t tid) |
Prune ThreadPlanStacks for unreported threads. | |
void | PruneThreadPlans () |
Prune ThreadPlanStacks for all unreported threads. | |
ThreadPlanStack * | FindThreadPlans (lldb::tid_t tid) |
Find the thread plan stack associated with thread with tid. | |
bool | DumpThreadPlansForTID (Stream &strm, lldb::tid_t tid, lldb::DescriptionLevel desc_level, bool internal, bool condense_trivial, bool skip_unreported_plans) |
Dump the thread plans associated with thread with tid. | |
void | DumpThreadPlans (Stream &strm, lldb::DescriptionLevel desc_level, bool internal, bool condense_trivial, bool skip_unreported_plans) |
Dump all the thread plans for this process. | |
virtual bool | StartNoticingNewThreads () |
Call this to set the lldb in the mode where it breaks on new thread creations, and then auto-restarts. | |
virtual bool | StopNoticingNewThreads () |
Call this to turn off the stop & notice new threads mode. | |
void | SetRunningUserExpression (bool on) |
void | SetRunningUtilityFunction (bool on) |
lldb::TargetSP | CalculateTarget () override |
lldb::ProcessSP | CalculateProcess () override |
lldb::ThreadSP | CalculateThread () override |
lldb::StackFrameSP | CalculateStackFrame () override |
void | CalculateExecutionContext (ExecutionContext &exe_ctx) override |
Reconstruct the object's execution context into sc. | |
void | SetSTDIOFileDescriptor (int file_descriptor) |
void | AddInvalidMemoryRegion (const LoadRange ®ion) |
bool | RemoveInvalidMemoryRange (const LoadRange ®ion) |
void | AddPreResumeAction (PreResumeActionCallback callback, void *baton) |
bool | RunPreResumeActions () |
void | ClearPreResumeActions () |
void | ClearPreResumeAction (PreResumeActionCallback callback, void *baton) |
ProcessRunLock & | GetRunLock () |
bool | CurrentThreadIsPrivateStateThread () |
virtual Status | SendEventData (const char *data) |
lldb::ThreadCollectionSP | GetHistoryThreads (lldb::addr_t addr) |
lldb::InstrumentationRuntimeSP | GetInstrumentationRuntime (lldb::InstrumentationRuntimeType type) |
virtual bool | GetModuleSpec (const FileSpec &module_file_spec, const ArchSpec &arch, ModuleSpec &module_spec) |
Try to fetch the module specification for a module with the given file name and architecture. | |
virtual void | PrefetchModuleSpecs (llvm::ArrayRef< FileSpec > module_file_specs, const llvm::Triple &triple) |
virtual Status | GetFileLoadAddress (const FileSpec &file, bool &is_loaded, lldb::addr_t &load_addr) |
Try to find the load address of a file. | |
virtual StructuredData::DictionarySP | GetMetadata () |
Fetch process defined metadata. | |
StructuredData::DictionarySP | GetExtendedCrashInfoDict () |
Fetch extended crash information held by the process. | |
void | ResetExtendedCrashInfoDict () |
size_t | AddImageToken (lldb::addr_t image_ptr) |
lldb::addr_t | GetImagePtrFromToken (size_t token) const |
void | ResetImageToken (size_t token) |
Address | AdvanceAddressToNextBranchInstruction (Address default_stop_addr, AddressRange range_bounds) |
Find the next branch instruction to set a breakpoint on. | |
virtual Status | ConfigureStructuredData (llvm::StringRef type_name, const StructuredData::ObjectSP &config_sp) |
Configure asynchronous structured data feature. | |
void | BroadcastStructuredData (const StructuredData::ObjectSP &object_sp, const lldb::StructuredDataPluginSP &plugin_sp) |
Broadcasts the given structured data object from the given plugin. | |
lldb::StructuredDataPluginSP | GetStructuredDataPlugin (llvm::StringRef type_name) const |
Returns the StructuredDataPlugin associated with a given type name, if there is one. | |
virtual void * | GetImplementation () |
virtual void | ForceScriptedState (lldb::StateType state) |
SourceManager::SourceFileCache & | GetSourceFileCache () |
lldb::addr_t | FindInMemory (lldb::addr_t low, lldb::addr_t high, const uint8_t *buf, size_t size) |
Find a pattern within a memory region. | |
AddressRanges | FindRangesInMemory (const uint8_t *buf, uint64_t size, const AddressRanges &ranges, size_t alignment, size_t max_matches, Status &error) |
lldb::addr_t | FindInMemory (const uint8_t *buf, uint64_t size, const AddressRange &range, size_t alignment, Status &error) |
Public Member Functions inherited from lldb_private::ProcessProperties | |
ProcessProperties (lldb_private::Process *process) | |
~ProcessProperties () override | |
bool | GetDisableMemoryCache () const |
uint64_t | GetMemoryCacheLineSize () const |
Args | GetExtraStartupCommands () const |
void | SetExtraStartupCommands (const Args &args) |
FileSpec | GetPythonOSPluginPath () const |
uint32_t | GetVirtualAddressableBits () const |
void | SetVirtualAddressableBits (uint32_t bits) |
uint32_t | GetHighmemVirtualAddressableBits () const |
void | SetHighmemVirtualAddressableBits (uint32_t bits) |
void | SetPythonOSPluginPath (const FileSpec &file) |
bool | GetIgnoreBreakpointsInExpressions () const |
void | SetIgnoreBreakpointsInExpressions (bool ignore) |
bool | GetUnwindOnErrorInExpressions () const |
void | SetUnwindOnErrorInExpressions (bool ignore) |
bool | GetStopOnSharedLibraryEvents () const |
void | SetStopOnSharedLibraryEvents (bool stop) |
bool | GetDisableLangRuntimeUnwindPlans () const |
void | SetDisableLangRuntimeUnwindPlans (bool disable) |
bool | GetDetachKeepsStopped () const |
void | SetDetachKeepsStopped (bool keep_stopped) |
bool | GetWarningsOptimization () const |
bool | GetWarningsUnsupportedLanguage () const |
bool | GetStopOnExec () const |
std::chrono::seconds | GetUtilityExpressionTimeout () const |
std::chrono::seconds | GetInterruptTimeout () const |
bool | GetOSPluginReportsAllThreads () const |
void | SetOSPluginReportsAllThreads (bool does_report) |
bool | GetSteppingRunsAllThreads () const |
FollowForkMode | GetFollowForkMode () const |
Public Member Functions inherited from lldb_private::Properties | |
Properties () | |
Properties (const lldb::OptionValuePropertiesSP &collection_sp) | |
virtual | ~Properties () |
virtual lldb::OptionValuePropertiesSP | GetValueProperties () const |
virtual lldb::OptionValueSP | GetPropertyValue (const ExecutionContext *exe_ctx, llvm::StringRef property_path, Status &error) const |
virtual Status | SetPropertyValue (const ExecutionContext *exe_ctx, VarSetOperationType op, llvm::StringRef property_path, llvm::StringRef value) |
virtual Status | DumpPropertyValue (const ExecutionContext *exe_ctx, Stream &strm, llvm::StringRef property_path, uint32_t dump_mask, bool is_json=false) |
virtual void | DumpAllPropertyValues (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask, bool is_json=false) |
virtual void | DumpAllDescriptions (CommandInterpreter &interpreter, Stream &strm) const |
size_t | Apropos (llvm::StringRef keyword, std::vector< const Property * > &matching_properties) const |
template<typename T > | |
T | GetPropertyAtIndexAs (uint32_t idx, T default_value, const ExecutionContext *exe_ctx=nullptr) const |
template<typename T , typename U = typename std::remove_pointer<T>::type, std::enable_if_t< std::is_pointer_v< T >, bool > = true> | |
const U * | GetPropertyAtIndexAs (uint32_t idx, const ExecutionContext *exe_ctx=nullptr) const |
template<typename T > | |
bool | SetPropertyAtIndex (uint32_t idx, T t, const ExecutionContext *exe_ctx=nullptr) const |
Public Member Functions inherited from lldb_private::Broadcaster | |
Broadcaster (lldb::BroadcasterManagerSP manager_sp, std::string name) | |
Construct with a broadcaster with a name. | |
virtual | ~Broadcaster () |
Destructor. | |
void | CheckInWithManager () |
void | BroadcastEvent (lldb::EventSP &event_sp) |
Broadcast an event which has no associated data. | |
void | BroadcastEventIfUnique (lldb::EventSP &event_sp) |
void | BroadcastEvent (uint32_t event_type, const lldb::EventDataSP &event_data_sp) |
void | BroadcastEvent (uint32_t event_type) |
void | BroadcastEventIfUnique (uint32_t event_type) |
void | Clear () |
virtual void | AddInitialEventsToListener (const lldb::ListenerSP &listener_sp, uint32_t requested_events) |
uint32_t | AddListener (const lldb::ListenerSP &listener_sp, uint32_t event_mask) |
Listen for any events specified by event_mask. | |
const std::string & | GetBroadcasterName () |
Get this broadcaster's name. | |
bool | GetEventNames (Stream &s, const uint32_t event_mask, bool prefix_with_broadcaster_name) const |
Get the event name(s) for one or more event bits. | |
void | SetEventName (uint32_t event_mask, const char *name) |
Set the name for an event bit. | |
const char * | GetEventName (uint32_t event_mask) const |
bool | EventTypeHasListeners (uint32_t event_type) |
bool | RemoveListener (const lldb::ListenerSP &listener_sp, uint32_t event_mask=UINT32_MAX) |
Removes a Listener from this broadcasters list and frees the event bits specified by event_mask that were previously acquired by listener (assuming listener was listening to this object) for other listener objects to use. | |
bool | HijackBroadcaster (const lldb::ListenerSP &listener_sp, uint32_t event_mask=UINT32_MAX) |
Provides a simple mechanism to temporarily redirect events from broadcaster. | |
bool | IsHijackedForEvent (uint32_t event_mask) |
void | RestoreBroadcaster () |
Restore the state of the Broadcaster from a previous hijack attempt. | |
virtual llvm::StringRef | GetBroadcasterClass () const |
This needs to be filled in if you are going to register the broadcaster with the broadcaster manager and do broadcaster class matching. | |
lldb::BroadcasterManagerSP | GetManager () |
void | SetPrimaryListener (lldb::ListenerSP listener_sp) |
lldb::ListenerSP | GetPrimaryListener () |
Public Member Functions inherited from lldb_private::ExecutionContextScope | |
virtual | ~ExecutionContextScope ()=default |
virtual lldb::TargetSP | CalculateTarget ()=0 |
virtual lldb::ProcessSP | CalculateProcess ()=0 |
virtual lldb::ThreadSP | CalculateThread ()=0 |
virtual lldb::StackFrameSP | CalculateStackFrame ()=0 |
virtual void | CalculateExecutionContext (ExecutionContext &exe_ctx)=0 |
Reconstruct the object's execution context into sc. | |
Public Member Functions inherited from lldb_private::PluginInterface | |
PluginInterface ()=default | |
virtual | ~PluginInterface ()=default |
virtual llvm::StringRef | GetPluginName ()=0 |
PluginInterface (const PluginInterface &)=delete | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static lldb::ProcessSP | CreateInstance (lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const FileSpec *crash_file_path, bool can_connect) |
static void | Initialize () |
static void | DebuggerInitialize (Debugger &debugger) |
static void | Terminate () |
static llvm::StringRef | GetPluginNameStatic () |
static llvm::StringRef | GetPluginDescriptionStatic () |
static std::chrono::seconds | GetPacketTimeout () |
Static Public Member Functions inherited from lldb_private::Process | |
static llvm::StringRef | GetStaticBroadcasterClass () |
static void | SettingsInitialize () |
static void | SettingsTerminate () |
static ProcessProperties & | GetGlobalProperties () |
static lldb::ProcessSP | FindPlugin (lldb::TargetSP target_sp, llvm::StringRef plugin_name, lldb::ListenerSP listener_sp, const FileSpec *crash_file_path, bool can_connect) |
Find a Process plug-in that can debug module using the currently selected architecture. | |
static bool | SetProcessExitStatus (lldb::pid_t pid, bool exited, int signo, int status) |
Static function that can be used with the host function Host::StartMonitoringChildProcess (). | |
static const char * | ExecutionResultAsCString (lldb::ExpressionResults result) |
static bool | HandleProcessStateChangedEvent (const lldb::EventSP &event_sp, Stream *stream, SelectMostRelevant select_most_relevant, bool &pop_process_io_handler) |
Centralize the code that handles and prints descriptions for process state changes. | |
Static Public Member Functions inherited from lldb_private::Properties | |
static llvm::StringRef | GetExperimentalSettingsName () |
static bool | IsSettingExperimental (llvm::StringRef setting) |
Protected Types | |
enum | { eBroadcastBitAsyncContinue = (1 << 0) , eBroadcastBitAsyncThreadShouldExit = (1 << 1) , eBroadcastBitAsyncThreadDidExit = (1 << 2) } |
Broadcaster event bits definitions. More... | |
typedef std::vector< lldb::tid_t > | tid_collection |
typedef std::vector< std::pair< lldb::tid_t, int > > | tid_sig_collection |
typedef std::map< lldb::addr_t, lldb::addr_t > | MMapMap |
typedef std::map< uint32_t, std::string > | ExpeditedRegisterMap |
using | FlashRangeVector = lldb_private::RangeVector< lldb::addr_t, size_t > |
using | FlashRange = FlashRangeVector::Entry |
Protected Types inherited from lldb_private::Process | |
enum | { eCanJITDontKnow = 0 , eCanJITYes , eCanJITNo } |
typedef std::map< lldb::LanguageType, lldb::LanguageRuntimeSP > | LanguageRuntimeCollection |
Protected Types inherited from lldb_private::Broadcaster | |
typedef std::shared_ptr< BroadcasterImpl > | BroadcasterImplSP |
typedef std::weak_ptr< BroadcasterImpl > | BroadcasterImplWP |
Protected Member Functions | |
ProcessGDBRemote (lldb::TargetSP target_sp, lldb::ListenerSP listener_sp) | |
bool | SupportsMemoryTagging () override |
Check whether the process supports memory tagging. | |
bool | IsRunning (lldb::StateType state) |
bool | IsStepping (lldb::StateType state) |
bool | CanResume (lldb::StateType state) |
bool | HasExited (lldb::StateType state) |
void | Clear () |
bool | DoUpdateThreadList (ThreadList &old_thread_list, ThreadList &new_thread_list) override |
Update the thread list following process plug-in's specific logic. | |
Status | EstablishConnectionIfNeeded (const ProcessInfo &process_info) |
Status | LaunchAndConnectToDebugserver (const ProcessInfo &process_info) |
void | KillDebugserverProcess () |
void | BuildDynamicRegisterInfo (bool force) |
void | SetLastStopPacket (const StringExtractorGDBRemote &response) |
bool | ParsePythonTargetDefinition (const FileSpec &target_definition_fspec) |
DataExtractor | GetAuxvData () override |
StructuredData::ObjectSP | GetExtendedInfoForThread (lldb::tid_t tid) |
void | GetMaxMemorySize () |
bool | CalculateThreadStopInfo (ThreadGDBRemote *thread) |
size_t | UpdateThreadPCsFromStopReplyThreadsValue (llvm::StringRef value) |
size_t | UpdateThreadIDsFromStopReplyThreadsValue (llvm::StringRef value) |
bool | StartAsyncThread () |
void | StopAsyncThread () |
lldb::thread_result_t | AsyncThread () |
lldb::StateType | SetThreadStopInfo (StringExtractor &stop_packet) |
bool | GetThreadStopInfoFromJSON (ThreadGDBRemote *thread, const StructuredData::ObjectSP &thread_infos_sp) |
lldb::ThreadSP | SetThreadStopInfo (StructuredData::Dictionary *thread_dict) |
lldb::ThreadSP | SetThreadStopInfo (lldb::tid_t tid, ExpeditedRegisterMap &expedited_register_map, uint8_t signo, const std::string &thread_name, const std::string &reason, const std::string &description, uint32_t exc_type, const std::vector< lldb::addr_t > &exc_data, lldb::addr_t thread_dispatch_qaddr, bool queue_vars_valid, lldb_private::LazyBool associated_with_libdispatch_queue, lldb::addr_t dispatch_queue_t, std::string &queue_name, lldb::QueueKind queue_kind, uint64_t queue_serial) |
void | ClearThreadIDList () |
bool | UpdateThreadIDList () |
void | DidLaunchOrAttach (ArchSpec &process_arch) |
void | LoadStubBinaries () |
void | MaybeLoadExecutableModule () |
Status | ConnectToDebugserver (llvm::StringRef host_port) |
const char * | GetDispatchQueueNameForThread (lldb::addr_t thread_dispatch_qaddr, std::string &dispatch_queue_name) |
DynamicLoader * | GetDynamicLoader () override |
Get the dynamic loader plug-in for this process. | |
bool | GetGDBServerRegisterInfoXMLAndProcess (ArchSpec &arch_to_use, std::string xml_filename, std::vector< DynamicRegisterInfo::Register > ®isters) |
void | AddRemoteRegisters (std::vector< DynamicRegisterInfo::Register > ®isters, const ArchSpec &arch_to_use) |
bool | GetGDBServerRegisterInfo (ArchSpec &arch) |
lldb::ModuleSP | LoadModuleAtAddress (const FileSpec &file, lldb::addr_t link_map, lldb::addr_t base_addr, bool value_is_offset) |
Status | UpdateAutomaticSignalFiltering () override |
Status | FlashErase (lldb::addr_t addr, size_t size) |
Status | FlashDone () |
bool | HasErased (FlashRange range) |
llvm::Expected< std::vector< uint8_t > > | DoReadMemoryTags (lldb::addr_t addr, size_t len, int32_t type) override |
Does the final operation to read memory tags. | |
Status | DoWriteMemoryTags (lldb::addr_t addr, size_t len, int32_t type, const std::vector< uint8_t > &tags) override |
Does the final operation to write memory tags. | |
Status | DoGetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo ®ion_info) override |
DoGetMemoryRegionInfo is called by GetMemoryRegionInfo after it has removed non address bits from load_addr. | |
Protected Member Functions inherited from lldb_private::Process | |
virtual JITLoaderList & | GetJITLoaders () |
Process (lldb::TargetSP target_sp, lldb::ListenerSP listener_sp) | |
Construct with a shared pointer to a target, and the Process listener. | |
Process (lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const lldb::UnixSignalsSP &unix_signals_sp) | |
Construct with a shared pointer to a target, the Process listener, and the appropriate UnixSignalsSP for the process. | |
virtual llvm::Expected< TraceSupportedResponse > | TraceSupported () |
Get the processor tracing type supported for this process. | |
virtual llvm::Error | TraceStart (const llvm::json::Value &request) |
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< std::string > | 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. | |
bool | CallVoidArgVoidPtrReturn (const Address *address, lldb::addr_t &returned_func, bool trap_exceptions=false) |
virtual bool | DoUpdateThreadList (ThreadList &old_thread_list, ThreadList &new_thread_list)=0 |
Update the thread list following process plug-in's specific logic. | |
virtual size_t | DoReadMemory (lldb::addr_t vm_addr, void *buf, size_t size, Status &error)=0 |
Actually do the reading of memory from a process. | |
virtual void | DoFindInMemory (lldb::addr_t start_addr, lldb::addr_t end_addr, const uint8_t *buf, size_t size, AddressRanges &matches, size_t alignment, size_t max_matches) |
virtual Status | DoGetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo &range_info) |
DoGetMemoryRegionInfo is called by GetMemoryRegionInfo after it has removed non address bits from load_addr. | |
virtual std::optional< bool > | DoGetWatchpointReportedAfter () |
Provide an override value in the subclass for lldb's CPU-based logic for whether watchpoint exceptions are received before or after an instruction executes. | |
virtual lldb::ThreadSP | HandleThreadAsyncInterrupt (uint8_t signo, const std::string &description) |
Handle thread specific async interrupt and return the original thread that requested the async interrupt. | |
lldb::StateType | GetPrivateState () |
Status | PrivateResume () |
The "private" side of resuming a process. | |
void | CompleteAttach () |
void | SetNextEventAction (Process::NextEventAction *next_event_action) |
bool | PrivateStateThreadIsValid () const |
void | ForceNextEventDelivery () |
void | MapSupportedStructuredDataPlugins (const StructuredData::Array &supported_type_names) |
Loads any plugins associated with asynchronous structured data and maps the relevant supported type name to the plugin. | |
bool | RouteAsyncStructuredData (const StructuredData::ObjectSP object_sp) |
Route the incoming structured data dictionary to the right plugin. | |
virtual bool | SupportsMemoryTagging () |
Check whether the process supports memory tagging. | |
virtual llvm::Expected< std::vector< uint8_t > > | DoReadMemoryTags (lldb::addr_t addr, size_t len, int32_t type) |
Does the final operation to read memory tags. | |
virtual Status | DoWriteMemoryTags (lldb::addr_t addr, size_t len, int32_t type, const std::vector< uint8_t > &tags) |
Does the final operation to write memory tags. | |
size_t | RemoveBreakpointOpcodesFromBuffer (lldb::addr_t addr, size_t size, uint8_t *buf) const |
void | SynchronouslyNotifyStateChanged (lldb::StateType state) |
void | SetPublicState (lldb::StateType new_state, bool restarted) |
void | SetPrivateState (lldb::StateType state) |
bool | StartPrivateStateThread (bool is_secondary_thread=false) |
void | StopPrivateStateThread () |
void | PausePrivateStateThread () |
void | ResumePrivateStateThread () |
void | HandlePrivateEvent (lldb::EventSP &event_sp) |
Status | HaltPrivate () |
lldb::StateType | WaitForProcessStopPrivate (lldb::EventSP &event_sp, const Timeout< std::micro > &timeout) |
bool | GetEventsPrivate (lldb::EventSP &event_sp, const Timeout< std::micro > &timeout, bool control_only) |
lldb::StateType | GetStateChangedEventsPrivate (lldb::EventSP &event_sp, const Timeout< std::micro > &timeout) |
size_t | WriteMemoryPrivate (lldb::addr_t addr, const void *buf, size_t size, Status &error) |
void | AppendSTDOUT (const char *s, size_t len) |
void | AppendSTDERR (const char *s, size_t len) |
void | BroadcastAsyncProfileData (const std::string &one_profile_data) |
bool | PushProcessIOHandler () |
bool | PopProcessIOHandler () |
bool | ProcessIOHandlerIsActive () |
bool | ProcessIOHandlerExists () const |
Status | StopForDestroyOrDetach (lldb::EventSP &exit_event_sp) |
virtual Status | UpdateAutomaticSignalFiltering () |
void | LoadOperatingSystemPlugin (bool flush) |
void | SetAddressableBitMasks (AddressableBits bit_masks) |
Protected Member Functions inherited from lldb_private::Broadcaster | |
BroadcasterImplSP | GetBroadcasterImpl () |
const char * | GetHijackingListenerName () |
Static Protected Member Functions | |
static void | MonitorDebugserverProcess (std::weak_ptr< ProcessGDBRemote > process_wp, lldb::pid_t pid, int signo, int exit_status) |
Static Protected Member Functions inherited from lldb_private::Process | |
static void | STDIOReadThreadBytesReceived (void *baton, const void *src, size_t src_len) |
Private Types | |
using | ModuleCacheKey = std::pair< std::string, std::string > |
Private Member Functions | |
void | HandleAsyncStdout (llvm::StringRef out) override |
void | HandleAsyncMisc (llvm::StringRef data) override |
void | HandleStopReply () override |
void | HandleAsyncStructuredDataPacket (llvm::StringRef data) override |
Process asynchronously-received structured data. | |
lldb::ThreadSP | HandleThreadAsyncInterrupt (uint8_t signo, const std::string &description) override |
Handle thread specific async interrupt and return the original thread that requested the async interrupt. | |
void | SetThreadPc (const lldb::ThreadSP &thread_sp, uint64_t index) |
ProcessGDBRemote (const ProcessGDBRemote &)=delete | |
const ProcessGDBRemote & | operator= (const ProcessGDBRemote &)=delete |
void | DidForkSwitchSoftwareBreakpoints (bool enable) |
void | DidForkSwitchHardwareTraps (bool enable) |
void | ParseExpeditedRegisters (ExpeditedRegisterMap &expedited_register_map, lldb::ThreadSP thread_sp) |
Private Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteClientBase::ContinueDelegate | |
virtual | ~ContinueDelegate () |
virtual void | HandleAsyncStdout (llvm::StringRef out)=0 |
virtual void | HandleAsyncMisc (llvm::StringRef data)=0 |
virtual void | HandleStopReply ()=0 |
virtual void | HandleAsyncStructuredDataPacket (llvm::StringRef data)=0 |
Process asynchronously-received structured data. | |
Static Private Member Functions | |
static bool | NewThreadNotifyBreakpointHit (void *baton, StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id) |
Private Attributes | |
std::string | m_partial_profile_data |
std::map< uint64_t, uint32_t > | m_thread_id_to_used_usec_map |
uint64_t | m_last_signals_version = 0 |
llvm::DenseMap< ModuleCacheKey, ModuleSpec, ModuleCacheInfo > | m_cached_module_specs |
llvm::StringMap< std::unique_ptr< RegisterFlags > > | m_registers_flags_types |
llvm::StringMap< std::unique_ptr< FieldEnum > > | m_registers_enum_types |
Friends | |
class | ThreadGDBRemote |
class | GDBRemoteCommunicationClient |
class | GDBRemoteRegisterContext |
Definition at line 51 of file ProcessGDBRemote.h.
|
protected |
Definition at line 273 of file ProcessGDBRemote.h.
|
protected |
Definition at line 301 of file ProcessGDBRemote.h.
|
protected |
Definition at line 300 of file ProcessGDBRemote.h.
|
protected |
Definition at line 272 of file ProcessGDBRemote.h.
|
private |
Definition at line 448 of file ProcessGDBRemote.h.
|
protected |
Definition at line 270 of file ProcessGDBRemote.h.
|
protected |
Definition at line 271 of file ProcessGDBRemote.h.
|
protected |
Broadcaster event bits definitions.
Enumerator | |
---|---|
eBroadcastBitAsyncContinue | |
eBroadcastBitAsyncThreadShouldExit | |
eBroadcastBitAsyncThreadDidExit |
Definition at line 253 of file ProcessGDBRemote.h.
|
override |
Definition at line 299 of file ProcessGDBRemote.cpp.
References Clear(), lldb_private::Process::Finalize(), KillDebugserverProcess(), and StopAsyncThread().
|
protected |
Definition at line 254 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::Async, eBroadcastBitAsyncContinue, eBroadcastBitAsyncThreadDidExit, eBroadcastBitAsyncThreadShouldExit, GetGlobalPluginProperties(), lldb_private::GetLog(), LLDB_LOGF, m_async_broadcaster, m_async_listener_sp, m_gdb_comm, m_use_g_packet_for_reading, lldb_private::Broadcaster::SetEventName(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::SetPacketTimeout().
|
privatedelete |
|
protected |
Definition at line 4863 of file ProcessGDBRemote.cpp.
References lldb_private::ABI::FindPlugin(), LLDB_INVALID_REGNUM, m_register_info_sp, and lldb_private::DynamicRegisterInfo::Register::regnum_remote.
Referenced by BuildDynamicRegisterInfo(), and GetGDBServerRegisterInfo().
|
protected |
Definition at line 3625 of file ProcessGDBRemote.cpp.
References lldb_private::Status::AsCString(), ClearThreadIDList(), eBroadcastBitAsyncContinue, eBroadcastBitAsyncThreadShouldExit, lldb::eStateCrashed, lldb::eStateExited, lldb::eStateInvalid, lldb::eStateRunning, lldb::eStateStopped, lldb::eStateSuspended, lldb_private::Status::Fail(), lldb_private::EventDataBytes::GetBytes(), lldb_private::EventDataBytes::GetByteSize(), StringExtractor::GetBytesLeft(), StringExtractor::GetChar(), StringExtractorGDBRemote::GetError(), lldb_private::EventDataBytes::GetEventDataFromEvent(), GetGDBRemote(), StringExtractor::GetHexByteString(), StringExtractor::GetHexU8(), lldb_private::Process::GetID(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::GetLog(), StringExtractor::GetNameColonValue(), lldb_private::Process::GetPrivateState(), StringExtractorGDBRemote::GetStatus(), lldb_private::Process::GetUnixSignals(), LLDB_LOGF, m_async_broadcaster, m_async_listener_sp, lldb_private::process_gdb_remote::Process, lldb_private::process_gdb_remote::GDBRemoteClientBase::SendContinuePacketAndWaitForResponse(), lldb_private::Process::SetExitStatus(), StringExtractor::SetFilePos(), SetLastStopPacket(), and lldb_private::Process::SetPrivateState().
Referenced by StartAsyncThread().
|
protected |
Definition at line 375 of file ProcessGDBRemote.cpp.
References AddRemoteRegisters(), lldb_private::DynamicRegisterInfo::Register::alt_name, lldb_private::DynamicRegisterInfo::Register::byte_offset, lldb_private::DynamicRegisterInfo::Register::byte_size, lldb::eEncodingInvalid, lldb::eFormatBinary, lldb::eFormatDecimal, lldb::eFormatFloat, lldb::eFormatHex, lldb::eFormatInvalid, lldb::eFormatVectorOfFloat32, lldb::eFormatVectorOfSInt16, lldb::eFormatVectorOfSInt32, lldb::eFormatVectorOfSInt8, lldb::eFormatVectorOfUInt128, lldb::eFormatVectorOfUInt16, lldb::eFormatVectorOfUInt32, lldb::eFormatVectorOfUInt64, lldb::eFormatVectorOfUInt8, lldb_private::DynamicRegisterInfo::Register::encoding, StringExtractorGDBRemote::eResponse, lldb_private::DynamicRegisterInfo::Register::format, lldb_private::Target::GetArchitecture(), lldb_private::process_gdb_remote::GetFallbackRegisters(), GetGDBServerRegisterInfo(), GetGlobalPluginProperties(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostArchitecture(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostDefaultPacketTimeout(), lldb_private::Process::GetID(), StringExtractor::GetNameColonValue(), lldb_private::FileSpec::GetPath(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessArchitecture(), StringExtractorGDBRemote::GetResponseType(), lldb_private::Process::GetTarget(), lldb_private::FileSystem::Instance(), lldb_private::DynamicRegisterInfo::Register::invalidate_regs, lldb_private::ArchSpec::IsValid(), m_gdb_comm, m_register_info_sp, lldb_private::DynamicRegisterInfo::Register::name, ParsePythonTargetDefinition(), lldb_private::DynamicRegisterInfo::Register::regnum_dwarf, lldb_private::DynamicRegisterInfo::Register::regnum_ehframe, lldb_private::DynamicRegisterInfo::Register::regnum_generic, lldb_private::Debugger::ReportError(), lldb_private::FileSystem::Resolve(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), lldb_private::DynamicRegisterInfo::Register::set_name, lldb_private::ConstString::SetString(), SplitCommaSeparatedRegisterNumberString(), lldb_private::Args::StringToEncoding(), lldb_private::Args::StringToGenericRegister(), lldb_private::Status::Success(), lldb_private::process_gdb_remote::GDBRemoteCommunication::Success, lldb_private::OptionArgParser::ToFormat(), UNUSED_IF_ASSERT_DISABLED, and lldb_private::DynamicRegisterInfo::Register::value_regs.
Referenced by DidLaunchOrAttach(), HandleStopReply(), SetLastStopPacket(), and SetThreadStopInfo().
|
protected |
Definition at line 1588 of file ProcessGDBRemote.cpp.
References lldb_private::StopInfo::CreateStopReasonWithBreakpointSiteID(), lldb::eStateStopped, GetGDBRemote(), lldb_private::UserID::GetID(), lldb_private::Thread::GetProcess(), lldb_private::Thread::GetProtocolID(), lldb_private::process_gdb_remote::ThreadGDBRemote::GetRegisterContext(), GetThreadStopInfoFromJSON(), m_jstopinfo_sp, m_jthreadsinfo_sp, m_thread_ids, m_thread_pcs, pc, lldb_private::Thread::SetStopInfo(), and SetThreadStopInfo().
|
overridevirtual |
Check if a plug-in instance can debug the file in module.
Each plug-in is given a chance to say whether it can debug the file in module. If the Process plug-in instance can debug a file on the current system, it should return true.
Implements lldb_private::Process.
Definition at line 222 of file ProcessGDBRemote.cpp.
References lldb_private::ObjectFile::eTypeCoreFile, lldb_private::ObjectFile::eTypeDebugInfo, lldb_private::ObjectFile::eTypeDynamicLinker, lldb_private::ObjectFile::eTypeExecutable, lldb_private::ObjectFile::eTypeInvalid, lldb_private::ObjectFile::eTypeJIT, lldb_private::ObjectFile::eTypeObjectFile, lldb_private::ObjectFile::eTypeSharedLibrary, lldb_private::ObjectFile::eTypeStubLibrary, lldb_private::ObjectFile::eTypeUnknown, lldb_private::FileSystem::Exists(), lldb_private::Module::GetFileSpec(), lldb_private::Module::GetObjectFile(), lldb_private::ObjectFile::GetType(), and lldb_private::FileSystem::Instance().
|
inlineprotected |
Definition at line 316 of file ProcessGDBRemote.h.
References lldb::eStateStopped.
|
protected |
Definition at line 3349 of file ProcessGDBRemote.cpp.
References lldb_private::ThreadList::Clear(), lldb_private::Process::m_thread_list, and lldb_private::Process::m_thread_list_real.
Referenced by DoAttachToProcessWithID(), DoAttachToProcessWithName(), and ~ProcessGDBRemote().
|
protected |
Definition at line 1398 of file ProcessGDBRemote.cpp.
References lldb_private::ThreadList::GetMutex(), m_thread_ids, lldb_private::Process::m_thread_list_real, and m_thread_pcs.
Referenced by AsyncThread(), and DoDestroy().
|
overridevirtual |
Configure asynchronous structured data feature.
Each Process type that supports using an asynchronous StructuredData feature should implement this to enable/disable/configure the feature. The default implementation here will always return an error indiciating the feature is unsupported.
StructuredDataPlugin implementations will call this to configure a feature that has been reported as being supported.
[in] | type_name | The StructuredData type name as previously discovered by the Process-derived instance. |
[in] | config_sp | Configuration data for the feature being enabled. This config data, which may be null, will be passed along to the feature to process. The feature will dictate whether this is a dictionary, an array or some other object. If the feature needs to be set up properly before it can be enabled, then the config should also take an enable/disable flag. |
Reimplemented from lldb_private::Process.
Definition at line 4081 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ConfigureRemoteStructuredData(), and m_gdb_comm.
|
protected |
Definition at line 806 of file ProcessGDBRemote.cpp.
References lldb_private::Communication::Disconnect(), lldb::eConnectionStatusSuccess, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::EnableErrorStringInPacket(), error(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetEchoSupported(), lldb_private::ProcessProperties::GetExtraStartupCommands(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostInfo(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetListThreadsInStopReplySupported(), lldb_private::GetLog(), lldb_private::Target::GetPlatform(), lldb_private::Process::GetTarget(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadSuffixSupported(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetVAttachOrWaitSupported(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetVContSupported(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::HandshakeWithServer(), lldb_private::Communication::IsConnected(), LLDB_LOGF, m_gdb_comm, lldb_private::process_gdb_remote::Process, lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), and lldb_private::Communication::SetConnection().
Referenced by DoConnectRemote(), and LaunchAndConnectToDebugserver().
|
static |
Definition at line 199 of file ProcessGDBRemote.cpp.
Referenced by Initialize(), and Terminate().
|
static |
Definition at line 3564 of file ProcessGDBRemote.cpp.
References lldb_private::PluginManager::CreateSettingForProcessPlugin(), GetGlobalPluginProperties(), lldb_private::PluginManager::GetSettingForProcessPlugin(), and lldb_private::Properties::GetValueProperties().
Referenced by Initialize().
|
inlineoverridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 120 of file ProcessGDBRemote.h.
|
overridevirtual |
Called after attaching a process.
[in] | process_arch | If you can figure out the process architecture after attach, fill it in here. |
Allow Process plug-ins to execute some code after attaching to a process.
Reimplemented from lldb_private::Process.
Definition at line 1167 of file ProcessGDBRemote.cpp.
References lldb_private::ArchSpec::Clear(), and DidLaunchOrAttach().
|
overridevirtual |
Called after a process re-execs itself.
Allow Process plug-ins to execute some code after a process has exec'ed itself. Subclasses typically should override DoDidExec() as the lldb_private::Process class needs to remove its dynamic loader, runtime, ABI and other plug-ins, as well as unload all shared libraries.
Reimplemented from lldb_private::Process.
Definition at line 5910 of file ProcessGDBRemote.cpp.
References lldb_private::Process::DidExec(), lldb_private::eFollowChild, lldb_private::ProcessProperties::GetFollowForkMode(), and m_vfork_in_progress_count.
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 1162 of file ProcessGDBRemote.cpp.
References lldb_private::Communication::Disconnect(), and m_gdb_comm.
|
overridevirtual |
Called after a reported fork.
Reimplemented from lldb_private::Process.
Definition at line 5776 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::Detach(), DidForkSwitchHardwareTraps(), DidForkSwitchSoftwareBreakpoints(), lldb_private::process_gdb_remote::eBreakpointSoftware, lldb_private::eFollowChild, lldb_private::eFollowParent, error(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), lldb_private::ProcessProperties::GetFollowForkMode(), lldb_private::GetLog(), LLDB_LOG, m_gdb_comm, m_thread_ids, lldb_private::process_gdb_remote::Process, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThread(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThreadForRun(), lldb_private::Process::SetID(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket().
|
private |
Definition at line 5755 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::eBreakpointHardware, lldb_private::BreakpointSite::eHardware, lldb_private::StopPointSiteList< StopPointSite >::ForEach(), lldb_private::Process::GetBreakpointSiteList(), GetGDBStoppointType(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::BreakpointSite::GetType(), lldb_private::BreakpointSite::IsEnabled(), m_gdb_comm, lldb_private::Process::m_watchpoint_resource_list, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGDBStoppointTypePacket(), lldb_private::StopPointSiteList< StopPointSite >::Sites(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket().
Referenced by DidFork(), and DidVFork().
|
private |
Definition at line 5743 of file ProcessGDBRemote.cpp.
References lldb_private::BreakpointSite::eExternal, lldb_private::BreakpointSite::eSoftware, lldb_private::StopPointSiteList< StopPointSite >::ForEach(), lldb_private::Process::GetBreakpointSiteList(), lldb_private::BreakpointSite::GetType(), and lldb_private::BreakpointSite::IsEnabled().
Referenced by DidFork(), DidVFork(), and DidVForkDone().
|
overridevirtual |
Called after launching a process.
Allow Process plug-ins to execute some code after launching a process.
Reimplemented from lldb_private::Process.
Definition at line 1069 of file ProcessGDBRemote.cpp.
References DidLaunchOrAttach().
|
protected |
Definition at line 880 of file ProcessGDBRemote.cpp.
References BuildDynamicRegisterInfo(), lldb_private::UnixSignals::Create(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetAddressableBits(), lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetArchitectureName(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostArchitecture(), lldb_private::GetLog(), lldb_private::ArchSpec::GetMachine(), lldb_private::Target::GetPlatform(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessArchitecture(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSupportedStructuredDataPlugins(), lldb_private::Process::GetTarget(), lldb_private::ArchSpec::GetTriple(), lldb_private::ArchSpec::IsValid(), LLDB_LOG, LoadStubBinaries(), m_gdb_comm, lldb_private::Process::MapSupportedStructuredDataPlugins(), MaybeLoadExecutableModule(), lldb_private::process_gdb_remote::Process, lldb_private::Process::SetAddressableBitMasks(), lldb_private::Target::SetArchitecture(), lldb_private::ArchSpec::SetTriple(), SetUnixSignals(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::UsesNativeSignals().
Referenced by DidAttach(), and DidLaunch().
|
overridevirtual |
Called after a reported vfork.
Reimplemented from lldb_private::Process.
Definition at line 5841 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::Detach(), DidForkSwitchHardwareTraps(), DidForkSwitchSoftwareBreakpoints(), lldb_private::process_gdb_remote::eBreakpointSoftware, lldb_private::eFollowChild, lldb_private::eFollowParent, error(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), lldb_private::ProcessProperties::GetFollowForkMode(), lldb_private::GetLog(), LLDB_LOG, m_gdb_comm, m_thread_ids, m_vfork_in_progress_count, lldb_private::process_gdb_remote::Process, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThread(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThreadForRun(), lldb_private::Process::SetID(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket().
|
overridevirtual |
Called after reported vfork completion.
Reimplemented from lldb_private::Process.
Definition at line 5901 of file ProcessGDBRemote.cpp.
References DidForkSwitchSoftwareBreakpoints(), lldb_private::process_gdb_remote::eBreakpointSoftware, m_gdb_comm, m_vfork_in_progress_count, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3130 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::Breakpoints, lldb_private::Process::DisableSoftwareBreakpoint(), lldb_private::process_gdb_remote::eBreakpointHardware, lldb_private::process_gdb_remote::eBreakpointSoftware, lldb_private::BreakpointSite::eExternal, lldb_private::BreakpointSite::eHardware, error(), lldb_private::BreakpointSite::eSoftware, lldb_private::StoppointSite::GetID(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::StoppointSite::GetLoadAddress(), lldb_private::GetLog(), lldb_private::Process::GetSoftwareBreakpointTrapOpcode(), lldb_private::BreakpointSite::GetType(), lldb_private::BreakpointSite::IsEnabled(), LLDB_LOGF, m_gdb_comm, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGDBStoppointTypePacket(), and lldb_private::BreakpointSite::SetEnabled().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3290 of file ProcessGDBRemote.cpp.
References error(), GetGDBStoppointType(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::GetLog(), LLDB_LOGF, m_gdb_comm, lldb_private::Process::m_watchpoint_resource_list, lldb_private::StopPointSiteList< StopPointSite >::Remove(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGDBStoppointTypePacket(), lldb_private::StopPointSiteList< StopPointSite >::Sites(), and lldb_private::process_gdb_remote::Watchpoints.
|
overridevirtual |
Actually allocate memory in the process.
This function will allocate memory in the process's address space. This can't rely on the generic function calling mechanism, since that requires this function.
[in] | size | The size of the allocation requested. |
Reimplemented from lldb_private::Process.
Definition at line 2899 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::AllocateMemory(), lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb_private::eMmapFlagsAnon, lldb_private::eMmapFlagsPrivate, lldb_private::eMmapProtExec, lldb_private::eMmapProtRead, lldb_private::eMmapProtWrite, error(), lldb_private::Expressions, lldb_private::GetLog(), lldb_private::GetPermissionsAsCString(), lldb_private::InferiorCallMmap(), LLDB_INVALID_ADDRESS, LLDB_LOGF, m_addr_to_mmap_size, m_gdb_comm, lldb_private::Process, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsAllocDeallocMemory().
|
overridevirtual |
Attach to an existing process using a process ID.
[in] | pid | The process ID that we should attempt to attach to. |
[in] | attach_info | Information on how to do the attach. For example, GetUserID() will return the uid to attach as. |
Reimplemented from lldb_private::Process.
Definition at line 1074 of file ProcessGDBRemote.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), Clear(), eBroadcastBitAsyncContinue, error(), EstablishConnectionIfNeeded(), lldb_private::ProcessAttachInfo::GetDetachOnError(), lldb_private::GetLog(), LLDB_INVALID_PROCESS_ID, LLDB_LOGF, m_async_broadcaster, m_gdb_comm, lldb_private::process_gdb_remote::Process, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetDetachOnError(), lldb_private::Process::SetExitStatus(), and lldb_private::Process::SetID().
|
overridevirtual |
Attach to an existing process using a partial process name.
[in] | process_name | The name of the process to attach to. |
[in] | attach_info | Information on how to do the attach. For example, GetUserID() will return the uid to attach as. |
Reimplemented from lldb_private::Process.
Definition at line 1102 of file ProcessGDBRemote.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), Clear(), eBroadcastBitAsyncContinue, error(), EstablishConnectionIfNeeded(), lldb_private::ProcessAttachInfo::GetDetachOnError(), lldb_private::ProcessAttachInfo::GetIgnoreExisting(), lldb_private::StreamString::GetString(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetVAttachOrWaitSupported(), lldb_private::ProcessAttachInfo::GetWaitForLaunch(), lldb_private::endian::InlHostByteOrder(), m_async_broadcaster, m_gdb_comm, lldb_private::Stream::PutBytesAsRawHex8(), lldb_private::Stream::PutChar(), lldb_private::Stream::PutCString(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetDetachOnError(), and lldb_private::Process::SetExitStatus().
|
overridevirtual |
Attach to a remote system via a URL.
[in] | remote_url | The URL format that we are connecting to. |
Reimplemented from lldb_private::Process.
Definition at line 527 of file ProcessGDBRemote.cpp.
References ConnectToDebugserver(), error(), lldb::eStateConnected, lldb::eStateInvalid, lldb_private::Target::GetArchitecture(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostArchitecture(), lldb_private::Process::GetID(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessArchitecture(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetStopReply(), lldb_private::Process::GetTarget(), lldb_private::Process::GetThreadList(), lldb_private::Process::IsValid(), lldb_private::ArchSpec::IsValid(), LLDB_INVALID_PROCESS_ID, LLDB_LOGF, m_gdb_comm, lldb_private::process_gdb_remote::Process, lldb_private::Target::SetArchitecture(), lldb_private::Process::SetID(), SetLastStopPacket(), lldb_private::Process::SetPrivateState(), SetThreadStopInfo(), StartAsyncThread(), lldb_private::StateAsCString(), and WillLaunchOrAttach().
|
overridevirtual |
Actually deallocate memory in the process.
This function will deallocate memory in the process's address space that was allocated with AllocateMemory.
[in] | ptr | A return value from AllocateMemory, pointing to the memory you want to deallocate. |
Reimplemented from lldb_private::Process.
Definition at line 2959 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::DeallocateMemory(), lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, error(), lldb_private::InferiorCallMunmap(), m_addr_to_mmap_size, m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsAllocDeallocMemory().
|
overridevirtual |
Implements lldb_private::Process.
Definition at line 2481 of file ProcessGDBRemote.cpp.
References ClearThreadIDList(), lldb::eStateAttaching, lldb_private::Process::GetID(), lldb_private::GetLog(), lldb_private::Process::GetTarget(), lldb_private::ThreadSafeValue< T >::GetValue(), lldb_private::Communication::IsConnected(), KillDebugserverProcess(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::KillProcess(), LLDB_LOGF, m_gdb_comm, lldb_private::Process::m_public_state, lldb_private::process_gdb_remote::Process, lldb_private::Process::SetExitStatus(), and StopAsyncThread().
|
overridevirtual |
Detaches from a running or stopped process.
Reimplemented from lldb_private::Process.
Definition at line 2452 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::Detach(), error(), lldb::eStateDetached, lldb_private::GetLog(), LLDB_LOGF, m_gdb_comm, lldb_private::process_gdb_remote::Process, lldb_private::Log::PutCString(), lldb_private::Process::ResumePrivateStateThread(), lldb_private::Process::SetPrivateState(), and StopAsyncThread().
|
overrideprotectedvirtual |
DoGetMemoryRegionInfo is called by GetMemoryRegionInfo after it has removed non address bits from load_addr.
Override this method in subclasses of Process.
See GetMemoryRegionInfo for details of the logic.
[in] | load_addr | The load address to query the range_info for. (non address bits removed) |
[out] | range_info | An range_info value containing the details of the range. |
Reimplemented from lldb_private::Process.
Definition at line 2944 of file ProcessGDBRemote.cpp.
References error(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMemoryRegionInfo(), and m_gdb_comm.
|
overridevirtual |
Provide an override value in the subclass for lldb's CPU-based logic for whether watchpoint exceptions are received before or after an instruction executes.
If a Process subclass needs to override this architecture-based result, it may do so by overriding this method.
Reimplemented from lldb_private::Process.
Definition at line 2955 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetWatchpointReportedAfter(), and m_gdb_comm.
|
overridevirtual |
Halts a running process.
DoHalt must produce one and only one stop StateChanged event if it actually stops the process. If the stop happens through some natural event (for instance a SIGSTOP), then forwarding that event will do. Otherwise, you must generate the event manually. This function is called from the context of the private state thread.
[out] | caused_stop | If true, then this Halt caused the stop, otherwise, the process was already stopped. |
Reimplemented from lldb_private::Process.
Definition at line 2438 of file ProcessGDBRemote.cpp.
References lldb_private::Communication::Disconnect(), error(), lldb::eStateAttaching, lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::ThreadSafeValue< T >::GetValue(), lldb_private::process_gdb_remote::GDBRemoteClientBase::Interrupt(), m_gdb_comm, and lldb_private::Process::m_public_state.
|
overridevirtual |
Launch a new process.
Launch a new process by spawning a new process using exe_module's file as the file to launch. Launch details are provided in launch_info.
[in] | exe_module | The module from which to extract the file specification and launch. |
[in] | launch_info | Details (e.g. arguments, stdio redirection, etc.) for the requested launch. |
Reimplemented from lldb_private::Process.
Definition at line 615 of file ProcessGDBRemote.cpp.
References lldb_private::FileSystem::DEV_NULL, lldb_private::FileAction::eFileActionOpen, error(), EstablishConnectionIfNeeded(), lldb_private::Flags::Get(), lldb_private::FileAction::GetAction(), lldb_private::Args::GetArgumentAtIndex(), lldb_private::ProcessInfo::GetArguments(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), lldb_private::ProcessInfo::GetEnvironment(), lldb_private::ProcessInfo::GetExecutableFile(), lldb_private::ProcessLaunchInfo::GetFileActionForFD(), lldb_private::FileAction::GetFileSpec(), lldb_private::ProcessLaunchInfo::GetFlags(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostArchitecture(), lldb_private::Process::GetID(), lldb_private::ProcessLaunchInfo::GetLaunchEventData(), lldb_private::GetLog(), lldb_private::PseudoTerminal::GetPrimaryFileDescriptor(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessArchitecture(), lldb_private::PseudoTerminal::GetSecondaryName(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetStopReply(), lldb_private::Process::GetTarget(), lldb_private::ProcessLaunchInfo::GetWorkingDirectory(), lldb_private::PseudoTerminal::invalid_fd, lldb_private::ArchSpec::IsValid(), KillDebugserverProcess(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::LaunchProcess(), LLDB_INVALID_PROCESS_ID, LLDB_LOGF, m_gdb_comm, lldb_private::Process::m_stdin_forward, lldb_private::Target::MergeArchitecture(), O_NOCTTY, lldb_private::PseudoTerminal::OpenFirstAvailablePrimary(), lldb_private::process_gdb_remote::Process, lldb_private::PseudoTerminal::ReleasePrimaryFileDescriptor(), lldb_private::Args::ReplaceArgumentAtIndex(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendEnvironment(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendLaunchArchPacket(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendLaunchEventDataPacket(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetDetachOnError(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetDisableASLR(), lldb_private::Process::SetID(), SetLastStopPacket(), lldb_private::Process::SetPrivateState(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetSTDERR(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetSTDIN(), lldb_private::Process::SetSTDIOFileDescriptor(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetSTDOUT(), SetThreadStopInfo(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetWorkingDir().
|
overridevirtual |
Actually do the reading of memory from a process.
Subclasses must override this function and can return fewer bytes than requested when memory requests are too large. This class will break up the memory requests and keep advancing the arguments along as needed.
[in] | vm_addr | A virtual load address that indicates where to start reading memory from. |
[in] | size | The number of bytes to read. |
[out] | buf | A byte buffer that is at least size bytes long that will receive the memory bytes. |
[out] | error | An error that indicates the success or failure of this operation. If error indicates success (error.Success()), then the value returned can be trusted, otherwise zero will be returned. |
Implements lldb_private::Process.
Definition at line 2606 of file ProcessGDBRemote.cpp.
References error(), StringExtractor::GetBytesLeft(), StringExtractor::GetHexBytes(), lldb_private::ProcessProperties::GetInterruptTimeout(), GetMaxMemorySize(), StringExtractor::GetStringRef(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetxPacketSupported(), StringExtractorGDBRemote::IsErrorResponse(), StringExtractorGDBRemote::IsNormalResponse(), StringExtractorGDBRemote::IsUnsupportedResponse(), m_gdb_comm, m_max_memory_size, lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), lldb_private::process_gdb_remote::GDBRemoteCommunication::Success, and UNUSED_IF_ASSERT_DISABLED.
|
overrideprotectedvirtual |
Does the final operation to read memory tags.
E.g. sending a GDB packet. It assumes that ReadMemoryTags has checked that memory tagging is enabled and has expanded the memory range as needed.
[in] | addr | Start of address range to read memory tags for. |
[in] | len | Length of the memory range to read tags for (in bytes). |
[in] | type | Type of tags to read (get this from a MemoryTagManager) |
Reimplemented from lldb_private::Process.
Definition at line 2670 of file ProcessGDBRemote.cpp.
References m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadMemoryTags().
|
overridevirtual |
Resumes all of a process's threads as configured using the Thread run control functions.
Threads for a process should be updated with one of the run control actions (resume, step, or suspend) that they should take when the process is resumed. If no run control action is given to a thread it will be resumed by default.
Reimplemented from lldb_private::Process.
Definition at line 1183 of file ProcessGDBRemote.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), lldb_private::StreamString::Clear(), eBroadcastBitAsyncContinue, eBroadcastBitAsyncThreadDidExit, lldb_private::process_gdb_remote::GDBRemoteClientBase::eBroadcastBitRunPacketSent, error(), lldb_private::Stream::Format(), lldb_private::Process::GetID(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMultiprocessSupported(), lldb_private::ThreadList::GetSize(), lldb_private::StreamString::GetString(), lldb_private::Process::GetThreadList(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetVContSupported(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::HasAnyVContSupport(), lldb_private::HostThread::IsJoinable(), LLDB_LOGF, m_async_broadcaster, m_async_thread, m_continue_c_tids, m_continue_C_tids, m_continue_s_tids, m_continue_S_tids, m_gdb_comm, lldb_private::Listener::MakeListener(), lldb_private::Stream::Printf(), lldb_private::process_gdb_remote::Process, lldb_private::Stream::PutChar(), lldb_private::Stream::PutCString(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SetCurrentThreadForRun().
|
overridevirtual |
Sends a process a UNIX signal signal.
Reimplemented from lldb_private::Process.
Definition at line 3354 of file ProcessGDBRemote.cpp.
References error(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::GetLog(), LLDB_LOGF, m_gdb_comm, lldb_private::process_gdb_remote::Process, and lldb_private::process_gdb_remote::GDBRemoteClientBase::SendAsyncSignal().
|
overrideprotectedvirtual |
Update the thread list following process plug-in's specific logic.
This method should only be invoked by UpdateThreadList.
Implements lldb_private::Process.
Definition at line 1498 of file ProcessGDBRemote.cpp.
References lldb_private::ThreadCollection::AddThreadSortedByIndexID(), lldb_private::Process::GetID(), lldb_private::GetLog(), lldb_private::ThreadList::GetSize(), lldb_private::ThreadList::GetThreadAtIndex(), LLDB_LOGV, lldb_private::Process::m_thread_id_to_index_id_map, m_thread_ids, lldb_private::ThreadList::RemoveThreadByProtocolID(), SetThreadPc(), lldb_private::process_gdb_remote::Thread, and UpdateThreadIDList().
|
overridevirtual |
Called before attaching to a process.
Allow Process plug-ins to execute some code before attaching a process.
Reimplemented from lldb_private::Process.
Definition at line 518 of file ProcessGDBRemote.cpp.
References WillLaunchOrAttach().
|
overridevirtual |
Called before attaching to a process.
Allow Process plug-ins to execute some code before attaching a process.
Reimplemented from lldb_private::Process.
Definition at line 522 of file ProcessGDBRemote.cpp.
References WillLaunchOrAttach().
|
overridevirtual |
Called before launching to a process.
Allow Process plug-ins to execute some code before launching a process.
Reimplemented from lldb_private::Process.
Definition at line 514 of file ProcessGDBRemote.cpp.
References WillLaunchOrAttach().
|
overridevirtual |
Actually do the writing of memory to a process.
[in] | vm_addr | A virtual load address that indicates where to start writing memory to. |
[in] | buf | A byte buffer that is at least size bytes long that contains the data to write. |
[in] | size | The number of bytes to write. |
[out] | error | An error value in case the memory write fails. |
Reimplemented from lldb_private::Process.
Definition at line 2836 of file ProcessGDBRemote.cpp.
References error(), lldb_private::MemoryRegionInfo::eYes, FlashErase(), lldb_private::StreamString::GetData(), lldb_private::MemoryRegionInfo::GetFlash(), lldb_private::ProcessProperties::GetInterruptTimeout(), GetMaxMemorySize(), lldb_private::Process::GetMemoryRegionInfo(), lldb_private::MemoryRegionInfo::GetRange(), lldb_private::Range< B, S >::GetRangeEnd(), lldb_private::StreamString::GetString(), StringExtractor::GetStringRef(), lldb_private::endian::InlHostByteOrder(), StringExtractorGDBRemote::IsErrorResponse(), StringExtractorGDBRemote::IsOKResponse(), StringExtractorGDBRemote::IsUnsupportedResponse(), m_allow_flash_writes, m_gdb_comm, m_max_memory_size, lldb_private::Stream::Printf(), lldb_private::Stream::PutBytesAsRawHex8(), lldb_private::StreamGDBRemote::PutEscapedBytes(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), lldb_private::Status::Success(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
|
overrideprotectedvirtual |
Does the final operation to write memory tags.
E.g. sending a GDB packet. It assumes that WriteMemoryTags has checked that memory tagging is enabled and has packed the tag data.
[in] | addr | Start of address range to write memory tags for. |
[in] | len | Length of the memory range to write tags for (in bytes). |
[in] | type | Type of tags to read (get this from a MemoryTagManager) |
[in] | tags | Packed tags to be written. |
Reimplemented from lldb_private::Process.
Definition at line 2688 of file ProcessGDBRemote.cpp.
References m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::WriteMemoryTags().
|
overridevirtual |
The underlying plugin might store the low-level communication history for this session.
Dump it into the provided stream.
Reimplemented from lldb_private::Process.
Definition at line 209 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunication::DumpHistory(), and GetGDBRemote().
Referenced by CommandObjectProcessGDBRemotePacketHistory::DoExecute().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3006 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::Breakpoints, lldb_private::process_gdb_remote::eBreakpointHardware, lldb_private::process_gdb_remote::eBreakpointSoftware, lldb_private::BreakpointSite::eExternal, lldb_private::BreakpointSite::eHardware, lldb_private::Process::EnableSoftwareBreakpoint(), error(), lldb_private::StoppointSite::GetID(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::StoppointSite::GetLoadAddress(), lldb_private::GetLog(), lldb_private::Process::GetSoftwareBreakpointTrapOpcode(), lldb_private::StoppointSite::HardwareRequired(), lldb_private::BreakpointSite::IsEnabled(), LLDB_LOGF, m_gdb_comm, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGDBStoppointTypePacket(), lldb_private::BreakpointSite::SetEnabled(), lldb_private::BreakpointSite::SetType(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3196 of file ProcessGDBRemote.cpp.
References lldb_private::StopPointSiteList< StopPointSite >::Add(), lldb_private::WatchpointAlgorithms::AtomizeWatchpointRequest(), error(), lldb_private::Target::GetArchitecture(), GetGDBStoppointType(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSupportedWatchpointTypes(), lldb_private::Process::GetTarget(), LLDB_LOGF, m_gdb_comm, lldb_private::Process::m_watchpoint_resource_list, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendGDBStoppointTypePacket(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SupportsGDBStoppointPacket(), and lldb_private::process_gdb_remote::Watchpoints.
|
protected |
Definition at line 3365 of file ProcessGDBRemote.cpp.
References DEBUGSERVER_BASENAME, error(), lldb_private::Process::GetTarget(), lldb_private::Communication::IsConnected(), LaunchAndConnectToDebugserver(), and m_gdb_comm.
Referenced by DoAttachToProcessWithID(), DoAttachToProcessWithName(), and DoLaunch().
|
protected |
Definition at line 2808 of file ProcessGDBRemote.cpp.
References lldb_private::RangeVector< B, S, N >::Clear(), lldb_private::ProcessProperties::GetInterruptTimeout(), StringExtractor::GetStringRef(), lldb_private::RangeVector< B, S, N >::IsEmpty(), StringExtractorGDBRemote::IsErrorResponse(), StringExtractorGDBRemote::IsOKResponse(), StringExtractorGDBRemote::IsUnsupportedResponse(), m_erased_flash_ranges, m_gdb_comm, lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), lldb_private::Status::SetErrorStringWithFormat(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
Referenced by WriteObjectFile().
|
protected |
Definition at line 2728 of file ProcessGDBRemote.cpp.
References lldb_private::RangeVector< B, S, N >::Back(), lldb_private::MemoryRegionInfo::GetBlocksize(), lldb_private::Range< B, S >::GetByteSize(), lldb_private::StreamString::GetData(), lldb_private::ProcessProperties::GetInterruptTimeout(), lldb_private::Process::GetMemoryRegionInfo(), lldb_private::MemoryRegionInfo::GetRange(), lldb_private::Range< B, S >::GetRangeBase(), lldb_private::Range< B, S >::GetRangeEnd(), lldb_private::StreamString::GetString(), StringExtractor::GetStringRef(), HasErased(), lldb_private::RangeVector< B, S, N >::Insert(), lldb_private::RangeVector< B, S, N >::IsEmpty(), StringExtractorGDBRemote::IsErrorResponse(), StringExtractorGDBRemote::IsOKResponse(), StringExtractorGDBRemote::IsUnsupportedResponse(), m_erased_flash_ranges, m_gdb_comm, lldb_private::Stream::Printf(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), lldb_private::Range< B, S >::SetByteSize(), lldb_private::Status::SetErrorString(), lldb_private::Status::SetErrorStringWithFormat(), lldb_private::Range< B, S >::SetRangeBase(), lldb_private::Status::Success(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
Referenced by DoWriteMemory().
|
overrideprotectedvirtual |
Reimplemented from lldb_private::Process.
Definition at line 3906 of file ProcessGDBRemote.cpp.
References lldb_private::Process::GetAddressByteSize(), lldb_private::Process::GetByteOrder(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferAuxvReadSupported(), LLDB_LOG_ERROR, m_gdb_comm, lldb_private::process_gdb_remote::Process, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadExtFeature().
|
protected |
|
overrideprotectedvirtual |
Get the dynamic loader plug-in for this process.
The default action is to let the DynamicLoader plug-ins check the main executable and the DynamicLoader will select itself automatically. Subclasses can override this if inspecting the executable is not desired, or if Process subclasses can only use a specific DynamicLoader plug-in.
Reimplemented from lldb_private::Process.
Definition at line 3883 of file ProcessGDBRemote.cpp.
References lldb_private::DynamicLoader::FindPlugin(), and lldb_private::Process::m_dyld_up.
Referenced by LoadModuleAtAddress().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 4027 of file ProcessGDBRemote.cpp.
References StringExtractor::Empty(), StringExtractorGDBRemote::eResponse, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetDynamicLoaderProcessStateSupported(), StringExtractorGDBRemote::GetResponseType(), StringExtractor::GetStringRef(), m_gdb_comm, lldb_private::StructuredData::ParseJSON(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), StringExtractorGDBRemote::SetResponseValidatorToJSON(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
|
protected |
Definition at line 3920 of file ProcessGDBRemote.cpp.
References lldb_private::SystemRuntime::AddThreadExtendedInfoPacketHints(), StringExtractor::Empty(), StringExtractorGDBRemote::eResponse, StringExtractorGDBRemote::GetResponseType(), lldb_private::StreamString::GetString(), StringExtractor::GetStringRef(), lldb_private::Process::GetSystemRuntime(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadExtendedInfoSupported(), m_gdb_comm, lldb_private::StructuredData::ParseJSON(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), StringExtractorGDBRemote::SetResponseValidatorToJSON(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
Referenced by lldb_private::process_gdb_remote::ThreadGDBRemote::FetchThreadExtendedInfo().
|
overridevirtual |
Try to find the load address of a file.
The load address is defined as the address of the first memory region what contains data mapped from the specified file.
[in] | file | The name of the file whose load address we are looking for |
[out] | is_loaded | True if the file is loaded into the memory and false otherwise. |
[out] | load_addr | The load address of the file if it is loaded into the processes address space, LLDB_INVALID_ADDRESS otherwise. |
Reimplemented from lldb_private::Process.
Definition at line 5190 of file ProcessGDBRemote.cpp.
References StringExtractorGDBRemote::GetError(), StringExtractor::GetHexMaxU64(), lldb_private::FileSpec::GetPath(), lldb_private::StreamString::GetString(), StringExtractorGDBRemote::IsErrorResponse(), StringExtractorGDBRemote::IsNormalResponse(), LLDB_INVALID_ADDRESS, m_gdb_comm, lldb_private::Stream::PutCString(), lldb_private::Stream::PutStringAsRawHex8(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
|
inline |
Definition at line 186 of file ProcessGDBRemote.h.
References m_gdb_comm.
Referenced by AsyncThread(), CalculateThreadStopInfo(), lldb_private::process_gdb_remote::ThreadGDBRemote::CreateRegisterContextForFrame(), CommandObjectProcessGDBRemoteSpeedTest::DoExecute(), CommandObjectProcessGDBRemotePacketSend::DoExecute(), CommandObjectProcessGDBRemotePacketMonitor::DoExecute(), and DumpPluginHistory().
|
protected |
Definition at line 4905 of file ProcessGDBRemote.cpp.
References AddRemoteRegisters(), GetGDBServerRegisterInfoXMLAndProcess(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferFeaturesReadSupported(), m_gdb_comm, m_register_info_sp, m_registers_enum_types, m_registers_flags_types, and lldb_private::XMLDocument::XMLEnabled().
Referenced by BuildDynamicRegisterInfo().
|
protected |
Definition at line 4750 of file ProcessGDBRemote.cpp.
References lldb_private::XMLNode::ForEachAttribute(), lldb_private::XMLNode::ForEachChildElement(), lldb_private::XMLNode::ForEachChildElementWithName(), lldb_private::XMLNode::GetAttributeValue(), lldb_private::XMLNode::GetElementText(), GetGDBServerRegisterInfoXMLAndProcess(), lldb_private::XMLNode::GetName(), lldb_private::XMLDocument::GetRootElement(), lldb_private::Process::GetTarget(), lldb_private::ArchSpec::IsValid(), m_gdb_comm, m_registers_enum_types, m_registers_flags_types, lldb_private::Target::MergeArchitecture(), lldb_private::XMLDocument::ParseMemory(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadExtFeature(), lldb_private::ArchSpec::SetTriple(), and UINT32_MAX.
Referenced by GetGDBServerRegisterInfo(), and GetGDBServerRegisterInfoXMLAndProcess().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 4202 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMacCatalystVersion(), and m_gdb_comm.
|
overridevirtual |
Sometimes the connection to a process can detect the host OS version that the process is running on.
The current platform should be checked first in case the platform is connected, but clients can fall back onto this function if the platform fails to identify the host OS version. The platform should be checked first in case you are running a simulator platform that might itself be running natively, but have different heuristics for figuring out which OS is emulating.
Reimplemented from lldb_private::Process.
Definition at line 4198 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetOSVersion(), and m_gdb_comm.
|
overridevirtual |
Get the image information address for the current process.
Some runtimes have system functions that can help dynamic loaders locate the dynamic loader information needed to observe shared libraries being loaded or unloaded. This function is in the Process interface (as opposed to the DynamicLoader interface) to ensure that remote debugging can take advantage of this functionality.
Reimplemented from lldb_private::Process.
Definition at line 2563 of file ProcessGDBRemote.cpp.
References GetLoadedModuleList(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetShlibInfoAddr(), LLDB_INVALID_ADDRESS, LLDB_LOG_ERROR, m_gdb_comm, and lldb_private::process_gdb_remote::Process.
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3969 of file ProcessGDBRemote.cpp.
References GetLoadedDynamicLibrariesInfos_sender().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3977 of file ProcessGDBRemote.cpp.
References GetLoadedDynamicLibrariesInfos_sender().
|
overridevirtual |
Retrieve the list of shared libraries that are loaded for this process This method is used on pre-macOS 10.12, pre-iOS 10, pre-tvOS 10, pre- watchOS 3 systems.
The following two methods are for newer versions of those OSes.
For certain platforms, the time it takes for the DynamicLoader plugin to read all of the shared libraries out of memory over a slow communication channel may be too long. In that instance, the gdb-remote stub may be able to retrieve the necessary information about the solibs out of memory and return a concise summary sufficient for the DynamicLoader plugin.
[in] | image_list_address | The address where the table of shared libraries is stored in memory, if that is appropriate for this platform. Else this may be passed as LLDB_INVALID_ADDRESS. |
[in] | image_count | The number of shared libraries that are present in this process, if that is appropriate for this platofrm Else this may be passed as LLDB_INVALID_ADDRESS. |
Reimplemented from lldb_private::Process.
Definition at line 3958 of file ProcessGDBRemote.cpp.
References GetLoadedDynamicLibrariesInfos_sender().
StructuredData::ObjectSP ProcessGDBRemote::GetLoadedDynamicLibrariesInfos_sender | ( | StructuredData::ObjectSP | args | ) |
Definition at line 3991 of file ProcessGDBRemote.cpp.
References StringExtractor::Empty(), StringExtractorGDBRemote::eResponse, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetLoadedDynamicLibrariesInfosSupported(), StringExtractorGDBRemote::GetResponseType(), lldb_private::StreamString::GetString(), StringExtractor::GetStringRef(), m_gdb_comm, lldb_private::StructuredData::ParseJSON(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), StringExtractorGDBRemote::SetResponseValidatorToJSON(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
Referenced by GetLoadedDynamicLibrariesInfos().
|
overridevirtual |
Query remote GDBServer for a detailed loaded library list.
Reimplemented from lldb_private::Process.
Definition at line 4932 of file ProcessGDBRemote.cpp.
References lldb_private::LoadedModuleInfoList::add(), lldb_private::XMLNode::FindFirstChildElementWithName(), lldb_private::XMLNode::ForEachAttribute(), lldb_private::XMLNode::ForEachChildElementWithName(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_base(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_base_is_offset(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_dynamic(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_link_map(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_name(), lldb_private::XMLNode::GetAttributeValue(), GetGlobalPluginProperties(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferLibrariesReadSupported(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQXferLibrariesSVR4ReadSupported(), lldb_private::XMLDocument::GetRootElement(), LLDB_INVALID_ADDRESS, LLDB_LOGF, m_gdb_comm, lldb_private::LoadedModuleInfoList::m_link_map, lldb_private::LoadedModuleInfoList::m_list, lldb_private::XMLDocument::ParseMemory(), lldb_private::Process, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ReadExtFeature(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::set_base(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::set_base_is_offset(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::set_dynamic(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::set_link_map(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::set_name(), and lldb_private::XMLDocument::XMLEnabled().
Referenced by GetImageInfoAddress(), and LoadModules().
|
protected |
Definition at line 4095 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::Comm, lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetRemoteMaxPacketSize(), m_gdb_comm, m_max_memory_size, m_remote_stub_max_memory_size, lldb_private::process_gdb_remote::Memory, UINT64_MAX, and lldb_private::Log::Warning().
Referenced by DoReadMemory(), DoWriteMemory(), and SetUserSpecifiedMaxMemoryTransferSize().
|
overridevirtual |
Try to fetch the module specification for a module with the given file name and architecture.
Process sub-classes have to override this method if they support platforms where the Platform object can't get the module spec for all module.
[in] | module_file_spec | The file name of the module to get specification for. |
[in] | arch | The architecture of the module to get specification for. |
[out] | module_spec | The fetched module specification if the return value is true, unchanged otherwise. |
Reimplemented from lldb_private::Process.
Definition at line 4153 of file ProcessGDBRemote.cpp.
References lldb_private::ModuleSpec::Dump(), lldb_private::StreamString::GetData(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetModuleInfo(), lldb_private::FileSpec::GetPath(), lldb_private::ArchSpec::GetTriple(), LLDB_LOGF, m_cached_module_specs, m_gdb_comm, and lldb_private::Platform.
|
static |
Definition at line 214 of file ProcessGDBRemote.cpp.
References GetGlobalPluginProperties(), and GetPacketTimeout().
Referenced by lldb_private::platform_gdb_server::PlatformRemoteGDBServer::ConnectRemote(), and GetPacketTimeout().
|
overridevirtual |
Return a multi-word command object that can be used to expose plug-in specific commands.
This object will be used to resolve plug-in commands and can be triggered by a call to:
(lldb) process command <args>
Reimplemented from lldb_private::Process.
Definition at line 5736 of file ProcessGDBRemote.cpp.
References lldb_private::Process::GetTarget(), and m_command_sp.
|
static |
Definition at line 191 of file ProcessGDBRemote.cpp.
Referenced by Initialize().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 109 of file ProcessGDBRemote.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 67 of file ProcessGDBRemote.h.
Referenced by lldb_private::PlatformQemuUser::DebugProcess(), GetPluginName(), and Initialize().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 4049 of file ProcessGDBRemote.cpp.
References StringExtractor::Empty(), StringExtractorGDBRemote::eResponse, StringExtractorGDBRemote::GetResponseType(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSharedCacheInfoSupported(), lldb_private::StreamString::GetString(), StringExtractor::GetStringRef(), m_gdb_comm, lldb_private::StructuredData::ParseJSON(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), StringExtractorGDBRemote::SetResponseValidatorToJSON(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::Success.
|
overridevirtual |
Get the system architecture for this process.
Reimplemented from lldb_private::Process.
Definition at line 218 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetHostArchitecture(), and m_gdb_comm.
|
protected |
Definition at line 1563 of file ProcessGDBRemote.cpp.
References lldb_private::StructuredData::Object::GetAsArray(), lldb_private::UserID::GetID(), lldb_private::StructuredData::Array::GetItemAtIndex(), lldb_private::StructuredData::Array::GetSize(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), LLDB_INVALID_THREAD_ID, and SetThreadStopInfo().
Referenced by CalculateThreadStopInfo().
|
overridevirtual |
Get the number of watchpoints supported by this target.
We may be able to determine the number of watchpoints available on this target; retrieve this value if possible.
This number may be less than the number of watchpoints a user can specify. This is because a single user watchpoint may require multiple watchpoint slots to implement. Due to the size and/or alignment of objects.
Reimplemented from lldb_private::Process.
Definition at line 2951 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetWatchpointSlotCount(), and m_gdb_comm.
|
overrideprivatevirtual |
Implements lldb_private::process_gdb_remote::GDBRemoteClientBase::ContinueDelegate.
Definition at line 5248 of file ProcessGDBRemote.cpp.
References lldb_private::Process::BroadcastAsyncProfileData(), end_delimiter, end_delimiter_len, HarmonizeThreadIdsForProfileData(), and m_partial_profile_data.
|
overrideprivatevirtual |
Implements lldb_private::process_gdb_remote::GDBRemoteClientBase::ContinueDelegate.
Definition at line 5241 of file ProcessGDBRemote.cpp.
References lldb_private::Process::AppendSTDOUT().
|
overrideprivatevirtual |
Process asynchronously-received structured data.
[in] | data | The complete data packet, expected to start with JSON-async. |
Implements lldb_private::process_gdb_remote::GDBRemoteClientBase::ContinueDelegate.
Definition at line 5452 of file ProcessGDBRemote.cpp.
References ParseStructuredDataPacket(), and lldb_private::Process::RouteAsyncStructuredData().
|
overrideprivatevirtual |
Implements lldb_private::process_gdb_remote::GDBRemoteClientBase::ContinueDelegate.
Definition at line 5349 of file ProcessGDBRemote.cpp.
References BuildDynamicRegisterInfo(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), lldb_private::Process::GetID(), lldb_private::Process::GetStopID(), LLDB_INVALID_PROCESS_ID, m_gdb_comm, and lldb_private::Process::SetID().
|
overrideprivatevirtual |
Handle thread specific async interrupt and return the original thread that requested the async interrupt.
It can be null if original thread has exited.
[in] | description | Returns the stop reason description of the async interrupt. |
Reimplemented from lldb_private::Process.
Definition at line 1982 of file ProcessGDBRemote.cpp.
References lldb_private::StopInfo::CreateStopReasonWithInterrupt(), lldb_private::ThreadList::FindThreadByProtocolID(), lldb_private::ThreadList::GetMutex(), LLDB_INVALID_THREAD_ID, lldb_private::Process::m_interrupt_tid, and lldb_private::Process::m_thread_list_real.
Referenced by SetThreadStopInfo().
std::string ProcessGDBRemote::HarmonizeThreadIdsForProfileData | ( | StringExtractorGDBRemote & | inputStringExtractor | ) |
Definition at line 5273 of file ProcessGDBRemote.cpp.
References lldb_private::Process::AssignIndexIDToThread(), end_delimiter, StringExtractor::GetFilePos(), StringExtractor::GetHexMaxU64(), StringExtractor::GetNameColonValue(), lldb_private::Process::HasAssignedIndexIDToThread(), m_thread_id_to_used_usec_map, and StringExtractor::SetFilePos().
Referenced by CommandObjectProcessGDBRemotePacketSend::DoExecute(), and HandleAsyncMisc().
|
protected |
Definition at line 2720 of file ProcessGDBRemote.cpp.
References lldb_private::Range< B, S >::Contains(), lldb_private::RangeVector< B, S, N >::GetEntryAtIndex(), lldb_private::RangeVector< B, S, N >::GetSize(), and m_erased_flash_ranges.
Referenced by FlashErase().
|
inlineprotected |
Definition at line 318 of file ProcessGDBRemote.h.
References lldb::eStateExited.
|
static |
Definition at line 3554 of file ProcessGDBRemote.cpp.
References CreateInstance(), DebuggerInitialize(), GetPluginDescriptionStatic(), GetPluginNameStatic(), and lldb_private::PluginManager::RegisterPlugin().
|
overridevirtual |
Check if a process is still alive.
Reimplemented from lldb_private::Process.
Definition at line 2559 of file ProcessGDBRemote.cpp.
References lldb_private::Process::IsAlive(), lldb_private::Communication::IsConnected(), and m_gdb_comm.
|
inlineprotected |
Definition at line 308 of file ProcessGDBRemote.h.
References lldb::eStateRunning, and IsStepping().
|
inlineprotected |
Definition at line 312 of file ProcessGDBRemote.h.
References lldb::eStateStepping.
Referenced by IsRunning().
|
protected |
Definition at line 3546 of file ProcessGDBRemote.cpp.
References lldb_private::Communication::Disconnect(), lldb_private::Host::Kill(), LLDB_INVALID_PROCESS_ID, m_debugserver_pid, and m_gdb_comm.
Referenced by DoDestroy(), DoLaunch(), and ~ProcessGDBRemote().
|
protected |
Definition at line 3399 of file ProcessGDBRemote.cpp.
References ConnectToDebugserver(), error(), lldb_private::GetLog(), lldb_private::ProcessInfo::GetProcessID(), lldb_private::Process::GetTarget(), lldb_private::ProcessInfo::GetUserID(), lldb_private::Communication::IsConnected(), LLDB_INVALID_PROCESS_ID, LLDB_LOGF, m_debugserver_pid, m_gdb_comm, MonitorDebugserverProcess(), lldb_private::process_gdb_remote::Process, SetCloexecFlag(), lldb_private::Communication::SetConnection(), lldb_private::ProcessInfo::SetExecutableFile(), lldb_private::ProcessLaunchInfo::SetLaunchInSeparateProcessGroup(), lldb_private::ProcessLaunchInfo::SetMonitorProcessCallback(), lldb_private::ProcessInfo::SetUserID(), StartAsyncThread(), and lldb_private::process_gdb_remote::GDBRemoteCommunication::StartDebugserverProcess().
Referenced by EstablishConnectionIfNeeded().
|
protected |
Definition at line 5097 of file ProcessGDBRemote.cpp.
References GetDynamicLoader(), and lldb_private::DynamicLoader::LoadModuleAtAddress().
Referenced by LoadModules().
|
overridevirtual |
Sometimes processes know how to retrieve and load shared libraries.
This is normally done by DynamicLoader plug-ins, but sometimes the connection to the process allows retrieving this information. The dynamic loader plug-ins can use this function if they can't determine the current shared library load state.
Reimplemented from lldb_private::Process.
Definition at line 5109 of file ProcessGDBRemote.cpp.
References lldb_private::ModuleList::Append(), lldb_private::ModuleList::AppendIfNeeded(), lldb_private::eLoadDependentsNo, lldb_private::ObjectFile::eTypeExecutable, lldb_private::ModuleList::ForEach(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_base(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_base_is_offset(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_link_map(), lldb_private::LoadedModuleInfoList::LoadedModuleInfo::get_name(), lldb_private::Target::GetExecutableModulePointer(), lldb_private::Target::GetImages(), GetLoadedModuleList(), lldb_private::ModuleList::GetModuleAtIndex(), lldb_private::ModuleList::GetSize(), lldb_private::Process::GetTarget(), lldb_private::ObjectFile::GetType(), lldb_private::FileSystem::Instance(), LLDB_INVALID_ADDRESS, LoadModuleAtAddress(), lldb_private::ProcessProperties::m_process, lldb_private::Target::ModulesDidLoad(), lldb_private::Target::ModulesDidUnload(), lldb_private::ModuleList::Remove(), lldb_private::FileSystem::Resolve(), and lldb_private::Target::SetExecutableModule().
Referenced by SetThreadStopInfo().
|
protected |
Definition at line 985 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessStandaloneBinaries(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetProcessStandaloneBinary(), lldb_private::Process::GetTarget(), lldb_private::UUID::IsValid(), lldb_private::DynamicLoader::LoadBinaryWithUUIDAndAddress(), and m_gdb_comm.
Referenced by DidLaunchOrAttach().
|
protected |
Definition at line 1044 of file ProcessGDBRemote.cpp.
References lldb_private::ModuleList::Append(), lldb_private::Target::GetExecutableModule(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQOffsets(), lldb_private::Process::GetTarget(), m_gdb_comm, lldb_private::ProcessProperties::m_process, and lldb_private::Target::ModulesDidLoad().
Referenced by DidLaunchOrAttach().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 5231 of file ProcessGDBRemote.cpp.
References m_gdb_comm, lldb_private::Process::ModulesDidLoad(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ServeSymbolLookups().
|
staticprotected |
Definition at line 3495 of file ProcessGDBRemote.cpp.
References DEBUGSERVER_BASENAME, lldb::eStateDetached, lldb::eStateExited, lldb::eStateInvalid, lldb::eStateUnloaded, lldb_private::Stream::Format(), lldb_private::GetLog(), lldb_private::StreamString::GetString(), LLDB_INVALID_PROCESS_ID, LLDB_LOGF, and lldb_private::process_gdb_remote::Process.
Referenced by LaunchAndConnectToDebugserver().
|
staticprivate |
Definition at line 3798 of file ProcessGDBRemote.cpp.
References lldb_private::GetLog(), LLDB_LOGF, and lldb_private::Step.
Referenced by StartNoticingNewThreads().
|
privatedelete |
|
private |
Definition at line 1634 of file ProcessGDBRemote.cpp.
References lldb::eRegisterKindProcessPlugin, StringExtractor::GetHexBytes(), lldb_private::process_gdb_remote::ThreadGDBRemote::GetRegisterContext(), StringExtractor::GetStringRef(), and lldb_private::process_gdb_remote::ThreadGDBRemote::PrivateSetRegisterValue().
Referenced by SetThreadStopInfo().
|
protected |
Definition at line 316 of file ProcessGDBRemote.cpp.
References error(), lldb_private::Target::GetDebugger(), lldb_private::ScriptInterpreter::GetDynamicSettings(), lldb_private::Debugger::GetScriptInterpreter(), lldb_private::Process::GetTarget(), lldb_private::ArchSpec::IsCompatibleMatch(), lldb_private::ScriptInterpreter::LoadPluginModule(), m_breakpoint_pc_offset, m_register_info_sp, and lldb_private::Target::SetArchitecture().
Referenced by BuildDynamicRegisterInfo().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 4185 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetModulesInfo(), m_cached_module_specs, and m_gdb_comm.
|
overridevirtual |
Puts data into this process's STDIN.
Calling this method is a valid operation only if all of the following conditions are true: 1) The process was launched, and not attached to. 2) The process was not launched with eLaunchFlagDisableSTDIO. 3) The process was launched without supplying a valid file path for STDIN.
[in] | buf | A buffer that contains the data to write to the process's STDIN. |
[in] | buf_size | The size in bytes for the buffer buf. |
Reimplemented from lldb_private::Process.
Definition at line 2995 of file ProcessGDBRemote.cpp.
References lldb_private::Communication::IsConnected(), m_gdb_comm, lldb_private::Process::m_stdin_forward, lldb_private::Process::m_stdio_communication, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendStdinNotification(), and lldb_private::Communication::WriteAll().
|
overridevirtual |
Currently called as part of ShouldStop.
FIXME: Should really happen when the target stops before the event is taken from the queue...
This callback is called as the event is about to be queued up to allow Process plug-ins to execute some code prior to clients being notified that a process was stopped. Common operations include updating the thread list, invalidating any thread state (registers, stack, etc) prior to letting the notification go out.
Implements lldb_private::Process.
Definition at line 2404 of file ProcessGDBRemote.cpp.
References lldb_private::ThreadList::GetMutex(), LLDB_INVALID_THREAD_ID, m_initial_tid, m_last_stop_packet, m_thread_ids, lldb_private::Process::m_thread_list, lldb_private::Process::m_thread_list_real, m_thread_pcs, lldb_private::ThreadList::RefreshStateAfterStop(), lldb_private::ThreadList::SetSelectedThreadByID(), SetThreadStopInfo(), UpdateThreadIDList(), and lldb_private::Process::UpdateThreadListIfNeeded().
|
overridevirtual |
Save core dump into the specified file.
[in] | outfile | Path to store core dump in. |
Reimplemented from lldb_private::Process.
Definition at line 5361 of file ProcessGDBRemote.cpp.
References error(), lldb_private::Platform::GetFile(), StringExtractor::GetHexByteString(), lldb_private::Target::GetPlatform(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetSaveCoreSupported(), lldb_private::StreamString::GetString(), StringExtractor::GetStringRef(), lldb_private::Process::GetTarget(), StringExtractorGDBRemote::IsErrorResponse(), lldb_private::Platform::IsRemote(), m_gdb_comm, lldb_private::Stream::PutCString(), lldb_private::Stream::PutStringAsRawHex8(), lldb_private::process_gdb_remote::GDBRemoteClientBase::SendPacketAndWaitForResponse(), lldb_private::process_gdb_remote::GDBRemoteCommunication::Success, and lldb_private::Platform::Unlink().
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 3889 of file ProcessGDBRemote.cpp.
References error(), m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendLaunchEventDataPacket().
|
protected |
Definition at line 2536 of file ProcessGDBRemote.cpp.
References BuildDynamicRegisterInfo(), lldb_private::ThreadList::Clear(), lldb_private::GetLog(), StringExtractor::GetStringRef(), LLDB_LOGF, m_gdb_comm, m_last_stop_packet, lldb_private::Process::m_thread_list, lldb_private::Process::m_thread_list_real, lldb_private::process_gdb_remote::Process, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::ResetDiscoverableSettings().
Referenced by AsyncThread(), DoConnectRemote(), and DoLaunch().
|
private |
Definition at line 1547 of file ProcessGDBRemote.cpp.
References lldb::eByteOrderInvalid, lldb::eRegisterKindGeneric, lldb_private::Process::GetByteOrder(), LLDB_INVALID_REGNUM, LLDB_REGNUM_GENERIC_PC, m_thread_ids, m_thread_pcs, and lldb_private::process_gdb_remote::ThreadGDBRemote::PrivateSetRegisterValue().
Referenced by DoUpdateThreadList(), and SetThreadStopInfo().
|
protected |
Definition at line 1650 of file ProcessGDBRemote.cpp.
References lldb_private::ThreadCollection::AddThread(), lldb_private::process_gdb_remote::ThreadGDBRemote::ClearQueueInfo(), lldb_private::StopInfo::CreateStopReasonFork(), lldb_private::StopInfo::CreateStopReasonProcessorTrace(), lldb_private::StopInfo::CreateStopReasonToTrace(), lldb_private::StopInfo::CreateStopReasonVFork(), lldb_private::StopInfo::CreateStopReasonVForkDone(), lldb_private::StopInfo::CreateStopReasonWithBreakpointSiteID(), lldb_private::StopInfo::CreateStopReasonWithException(), lldb_private::StopInfo::CreateStopReasonWithExec(), lldb_private::StopInfoMachException::CreateStopReasonWithMachException(), lldb_private::StopInfo::CreateStopReasonWithSignal(), lldb_private::StopInfo::CreateStopReasonWithWatchpointID(), lldb::eStateStepping, lldb::eStateSuspended, lldb_private::StopPointSiteList< StopPointSite >::FindByAddress(), lldb_private::ThreadList::FindThreadByProtocolID(), lldb_private::Target::GetArchitecture(), lldb_private::ThreadList::GetBackingThread(), lldb_private::ArchSpec::GetCore(), lldb_private::GetLog(), lldb_private::ThreadList::GetMutex(), lldb_private::process_gdb_remote::ThreadGDBRemote::GetRegisterContext(), lldb_private::Process::GetTarget(), StringExtractor::GetU64(), HandleThreadAsyncInterrupt(), lldb_private::ArchSpec::kCore_mips_first, lldb_private::ArchSpec::kCore_mips_last, LLDB_INVALID_ADDRESS, LLDB_INVALID_PROCESS_ID, LLDB_INVALID_SITE_ID, LLDB_INVALID_THREAD_ID, LLDB_INVALID_WATCH_ID, LLDB_LOGF, m_breakpoint_pc_offset, lldb_private::Process::m_interrupt_tid, m_thread_ids, lldb_private::Process::m_thread_list, lldb_private::Process::m_thread_list_real, lldb_private::Process::m_watchpoint_resource_list, ParseExpeditedRegisters(), pc, lldb_private::process_gdb_remote::ThreadGDBRemote::SetAssociatedWithLibdispatchQueue(), lldb_private::process_gdb_remote::ThreadGDBRemote::SetQueueInfo(), lldb_private::process_gdb_remote::ThreadGDBRemote::SetQueueLibdispatchQueueAddress(), lldb_private::process_gdb_remote::ThreadGDBRemote::SetThreadDispatchQAddr(), SetThreadPc(), SIGTRAP, and lldb_private::process_gdb_remote::Watchpoints.
|
protected |
Definition at line 2156 of file ProcessGDBRemote.cpp.
References lldb_private::MemoryCache::AddL1CacheData(), BuildDynamicRegisterInfo(), lldb_private::eLazyBoolCalculate, lldb::eQueueKindConcurrent, lldb::eQueueKindSerial, lldb::eQueueKindUnknown, error(), lldb::eStateExited, lldb::eStateInvalid, lldb::eStateStopped, lldb_private::StopPointSiteList< StopPointSite >::FindByAddress(), StringExtractor::GetBytesLeft(), StringExtractor::GetChar(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), StringExtractor::GetHexBytes(), StringExtractor::GetHexByteString(), StringExtractor::GetHexU8(), lldb_private::Process::GetID(), lldb_private::GetLog(), lldb_private::ThreadList::GetMutex(), StringExtractor::GetNameColonValue(), StringExtractorGDBRemote::GetPidTid(), lldb_private::Process::GetStopID(), lldb_private::StreamString::GetString(), LLDB_INVALID_ADDRESS, LLDB_INVALID_PROCESS_ID, LLDB_INVALID_THREAD_ID, LLDB_LOG, LLDB_LOG_ERROR, LoadModules(), m_gdb_comm, m_jstopinfo_sp, lldb_private::Process::m_memory_cache, m_thread_ids, lldb_private::Process::m_thread_list_real, m_thread_pcs, lldb_private::Process::m_watchpoint_resource_list, lldb_private::StructuredData::ParseJSON(), pc, lldb_private::Stream::Printf(), lldb_private::process_gdb_remote::Process, lldb_private::Process::SetAddressableBitMasks(), lldb_private::AddressableBits::SetAddressableBits(), StringExtractor::SetFilePos(), lldb_private::AddressableBits::SetHighmemAddressableBits(), lldb_private::Process::SetID(), lldb_private::AddressableBits::SetLowmemAddressableBits(), SetThreadStopInfo(), UINT32_MAX, UpdateThreadIDList(), and UpdateThreadIDsFromStopReplyThreadsValue().
Referenced by CalculateThreadStopInfo(), DoConnectRemote(), DoLaunch(), GetThreadStopInfoFromJSON(), RefreshStateAfterStop(), SetThreadStopInfo(), UpdateThreadIDList(), and WillPublicStop().
|
protected |
Definition at line 2000 of file ProcessGDBRemote.cpp.
References lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb::eQueueKindConcurrent, lldb::eQueueKindSerial, lldb::eQueueKindUnknown, lldb_private::StructuredData::Dictionary::ForEach(), lldb_private::StructuredData::Array::ForEach(), lldb_private::StructuredData::Object::GetAsArray(), lldb_private::StructuredData::Object::GetAsDictionary(), lldb_private::StructuredData::Object::GetStringValue(), lldb_private::StructuredData::Object::GetUnsignedIntegerValue(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), LLDB_INVALID_ADDRESS, LLDB_INVALID_SIGNAL_NUMBER, and LLDB_INVALID_THREAD_ID.
void ProcessGDBRemote::SetUnixSignals | ( | const lldb::UnixSignalsSP & | signals_sp | ) |
Definition at line 2553 of file ProcessGDBRemote.cpp.
References lldb_private::Process::SetUnixSignals().
Referenced by DidLaunchOrAttach().
void ProcessGDBRemote::SetUserSpecifiedMaxMemoryTransferSize | ( | uint64_t | user_specified_max | ) |
Definition at line 4132 of file ProcessGDBRemote.cpp.
References GetMaxMemorySize(), m_max_memory_size, and m_remote_stub_max_memory_size.
Referenced by CommandObjectProcessGDBRemotePacketXferSize::DoExecute().
|
protected |
Definition at line 3574 of file ProcessGDBRemote.cpp.
References AsyncThread(), lldb_private::GetLog(), lldb_private::Host, lldb_private::HostThread::IsJoinable(), lldb_private::ThreadLauncher::LaunchThread(), LLDB_LOG_ERROR, LLDB_LOGF, m_async_thread, m_async_thread_state_mutex, and lldb_private::process_gdb_remote::Process.
Referenced by DoConnectRemote(), and LaunchAndConnectToDebugserver().
|
overridevirtual |
Call this to set the lldb in the mode where it breaks on new thread creations, and then auto-restarts.
This is useful when you are trying to run only one thread, but either that thread or the kernel is creating new threads in the process. If you stop when the thread is created, you can immediately suspend it, and keep executing only the one thread you intend.
Reimplemented from lldb_private::Process.
Definition at line 3846 of file ProcessGDBRemote.cpp.
References lldb_private::GetLog(), lldb_private::Process::GetTarget(), lldb_private::Log::GetVerbose(), LLDB_LOGF, m_thread_create_bp_sp, NewThreadNotifyBreakpointHit(), and lldb_private::Step.
|
protected |
Definition at line 3603 of file ProcessGDBRemote.cpp.
References lldb_private::Broadcaster::BroadcastEvent(), lldb_private::Communication::Disconnect(), eBroadcastBitAsyncThreadShouldExit, lldb_private::GetLog(), lldb_private::HostThread::IsJoinable(), lldb_private::HostThread::Join(), LLDB_LOGF, m_async_broadcaster, m_async_thread, m_async_thread_state_mutex, m_gdb_comm, lldb_private::process_gdb_remote::Process, and lldb_private::HostThread::Reset().
Referenced by DoDestroy(), DoDetach(), and ~ProcessGDBRemote().
|
overridevirtual |
Call this to turn off the stop & notice new threads mode.
Reimplemented from lldb_private::Process.
Definition at line 3872 of file ProcessGDBRemote.cpp.
References lldb_private::GetLog(), lldb_private::Log::GetVerbose(), LLDB_LOGF, m_thread_create_bp_sp, and lldb_private::Step.
|
overrideprotectedvirtual |
Check whether the process supports memory tagging.
Reimplemented from lldb_private::Process.
Definition at line 2665 of file ProcessGDBRemote.cpp.
References lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMemoryTaggingSupported(), and m_gdb_comm.
|
static |
Definition at line 195 of file ProcessGDBRemote.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
|
overridevirtual |
Get binary data given a trace technology and a data identifier.
[in] | request | Object with the params of the requested data. |
Reimplemented from lldb_private::Process.
Definition at line 1158 of file ProcessGDBRemote.cpp.
References lldb_private::ProcessProperties::GetInterruptTimeout(), m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceGetBinaryData().
|
overridevirtual |
Get the current tracing state of the process and its threads.
[in] | type | Tracing technology type to consider. |
Reimplemented from lldb_private::Process.
Definition at line 1153 of file ProcessGDBRemote.cpp.
References lldb_private::ProcessProperties::GetInterruptTimeout(), m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceGetState().
|
overridevirtual |
Start tracing a process or its threads.
[in] | request | JSON object with the information necessary to start tracing. In the case of gdb-remote processes, this JSON object should conform to the jLLDBTraceStart packet. |
Reimplemented from lldb_private::Process.
Definition at line 1148 of file ProcessGDBRemote.cpp.
References lldb_private::ProcessProperties::GetInterruptTimeout(), m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceStart().
|
overridevirtual |
Stop tracing a live process or its threads.
[in] | request | The information determining which threads or process to stop tracing. |
Reimplemented from lldb_private::Process.
Definition at line 1144 of file ProcessGDBRemote.cpp.
References lldb_private::ProcessProperties::GetInterruptTimeout(), m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceStop().
|
overridevirtual |
Get the processor tracing type supported for this process.
Responses might be different depending on the architecture and capabilities of the underlying OS.
Reimplemented from lldb_private::Process.
Definition at line 1140 of file ProcessGDBRemote.cpp.
References lldb_private::ProcessProperties::GetInterruptTimeout(), m_gdb_comm, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendTraceSupported().
|
overrideprotectedvirtual |
Reimplemented from lldb_private::Process.
Definition at line 3809 of file ProcessGDBRemote.cpp.
References error(), lldb_private::GetLog(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetQPassSignalsSupported(), LLDB_LOG, m_gdb_comm, m_last_signals_version, lldb_private::Process::m_unix_signals_sp, lldb_private::process_gdb_remote::Process, and lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::SendSignalsToIgnore().
|
protected |
Definition at line 1434 of file ProcessGDBRemote.cpp.
References lldb_private::StructuredData::Array::ForEach(), lldb_private::StructuredData::Object::GetAsDictionary(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentThreadIDs(), lldb_private::ThreadList::GetMutex(), lldb_private::StructuredData::Array::GetSize(), StringExtractor::GetStringRef(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsInteger(), LLDB_INVALID_THREAD_ID, m_gdb_comm, m_jthreadsinfo_sp, m_last_stop_packet, m_thread_ids, lldb_private::Process::m_thread_list_real, m_thread_pcs, SetThreadStopInfo(), UpdateThreadIDsFromStopReplyThreadsValue(), and UpdateThreadPCsFromStopReplyThreadsValue().
Referenced by DoUpdateThreadList(), RefreshStateAfterStop(), and SetThreadStopInfo().
|
protected |
Definition at line 1404 of file ProcessGDBRemote.cpp.
References StringExtractorGDBRemote::AllProcesses, lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetCurrentProcessID(), StringExtractorGDBRemote::GetPidTid(), LLDB_INVALID_THREAD_ID, m_gdb_comm, and m_thread_ids.
Referenced by SetThreadStopInfo(), and UpdateThreadIDList().
|
protected |
Definition at line 1423 of file ProcessGDBRemote.cpp.
References m_thread_pcs, and pc.
Referenced by UpdateThreadIDList().
Status ProcessGDBRemote::WillLaunchOrAttach | ( | ) |
Definition at line 608 of file ProcessGDBRemote.cpp.
References lldb_private::ThreadedCommunication::Clear(), error(), and lldb_private::Process::m_stdio_communication.
Referenced by DoConnectRemote(), DoWillAttachToProcessWithID(), DoWillAttachToProcessWithName(), and DoWillLaunch().
|
overridevirtual |
Called when the process is about to broadcast a public stop.
There are public and private stops. Private stops are when the process is doing things like stepping and the client doesn't need to know about starts and stop that implement a thread plan. Single stepping over a source line in code might end up being implemented by one or more process starts and stops. Public stops are when clients will be notified that the process is stopped. These events typically trigger UI updates (thread stack frames to be displayed, variables to be displayed, and more). This function can be overriden and allows process subclasses to do something before the eBroadcastBitStateChanged event is sent to public clients.
Reimplemented from lldb_private::Process.
Definition at line 2581 of file ProcessGDBRemote.cpp.
References lldb_private::StructuredData::Array::GetItemAtIndex(), lldb_private::StructuredData::Array::GetSize(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetThreadsInfo(), m_gdb_comm, m_jthreadsinfo_sp, and SetThreadStopInfo().
|
overridevirtual |
Called before resuming to a process.
Allow Process plug-ins to execute some code before resuming a process.
Reimplemented from lldb_private::Process.
Definition at line 1173 of file ProcessGDBRemote.cpp.
References m_continue_c_tids, m_continue_C_tids, m_continue_s_tids, m_continue_S_tids, m_jstopinfo_sp, and m_jthreadsinfo_sp.
|
overridevirtual |
Reimplemented from lldb_private::Process.
Definition at line 2696 of file ProcessGDBRemote.cpp.
References lldb_private::ObjectFile::LoadableData::Dest, error(), FlashDone(), m_allow_flash_writes, and lldb_private::Process::WriteObjectFile().
|
friend |
Definition at line 245 of file ProcessGDBRemote.h.
|
friend |
Definition at line 246 of file ProcessGDBRemote.h.
|
friend |
Definition at line 244 of file ProcessGDBRemote.h.
|
protected |
Definition at line 291 of file ProcessGDBRemote.h.
Referenced by DoAllocateMemory(), and DoDeallocateMemory().
|
protected |
Definition at line 299 of file ProcessGDBRemote.h.
Referenced by DoWriteMemory(), and WriteObjectFile().
|
protected |
Definition at line 266 of file ProcessGDBRemote.h.
Referenced by AsyncThread(), DoAttachToProcessWithID(), DoAttachToProcessWithName(), DoResume(), ProcessGDBRemote(), and StopAsyncThread().
|
protected |
Definition at line 267 of file ProcessGDBRemote.h.
Referenced by AsyncThread(), and ProcessGDBRemote().
|
protected |
Definition at line 268 of file ProcessGDBRemote.h.
Referenced by DoResume(), StartAsyncThread(), and StopAsyncThread().
|
protected |
Definition at line 269 of file ProcessGDBRemote.h.
Referenced by StartAsyncThread(), and StopAsyncThread().
|
protected |
Definition at line 295 of file ProcessGDBRemote.h.
Referenced by ParsePythonTargetDefinition(), and SetThreadStopInfo().
|
private |
Definition at line 471 of file ProcessGDBRemote.h.
Referenced by GetModuleSpec(), and PrefetchModuleSpecs().
|
protected |
Definition at line 294 of file ProcessGDBRemote.h.
Referenced by GetPluginCommandObject().
|
protected |
Definition at line 283 of file ProcessGDBRemote.h.
Referenced by DoResume(), WillResume(), and lldb_private::process_gdb_remote::ThreadGDBRemote::WillResume().
|
protected |
Definition at line 284 of file ProcessGDBRemote.h.
Referenced by DoResume(), WillResume(), and lldb_private::process_gdb_remote::ThreadGDBRemote::WillResume().
|
protected |
Definition at line 285 of file ProcessGDBRemote.h.
Referenced by DoResume(), WillResume(), and lldb_private::process_gdb_remote::ThreadGDBRemote::WillResume().
|
protected |
Definition at line 286 of file ProcessGDBRemote.h.
Referenced by DoResume(), WillResume(), and lldb_private::process_gdb_remote::ThreadGDBRemote::WillResume().
|
protected |
Definition at line 260 of file ProcessGDBRemote.h.
Referenced by KillDebugserverProcess(), and LaunchAndConnectToDebugserver().
|
protected |
Definition at line 302 of file ProcessGDBRemote.h.
Referenced by FlashDone(), FlashErase(), and HasErased().
|
protected |
Definition at line 259 of file ProcessGDBRemote.h.
Referenced by BuildDynamicRegisterInfo(), ConfigureStructuredData(), ConnectToDebugserver(), DidExit(), DidFork(), DidForkSwitchHardwareTraps(), DidLaunchOrAttach(), DidVFork(), DidVForkDone(), DisableBreakpointSite(), DisableWatchpoint(), DoAllocateMemory(), DoAttachToProcessWithID(), DoAttachToProcessWithName(), DoConnectRemote(), DoDeallocateMemory(), DoDestroy(), DoDetach(), DoGetMemoryRegionInfo(), DoGetWatchpointReportedAfter(), DoHalt(), DoLaunch(), DoReadMemory(), DoReadMemoryTags(), DoResume(), DoSignal(), DoWriteMemory(), DoWriteMemoryTags(), EnableBreakpointSite(), EnableWatchpoint(), EstablishConnectionIfNeeded(), FlashDone(), FlashErase(), GetAuxvData(), GetDynamicLoaderProcessState(), GetExtendedInfoForThread(), GetFileLoadAddress(), GetGDBRemote(), GetGDBServerRegisterInfo(), GetGDBServerRegisterInfoXMLAndProcess(), GetHostMacCatalystVersion(), GetHostOSVersion(), GetImageInfoAddress(), GetLoadedDynamicLibrariesInfos_sender(), GetLoadedModuleList(), GetMaxMemorySize(), GetModuleSpec(), GetSharedCacheInfo(), lldb_private::process_gdb_remote::ThreadGDBRemote::GetSiginfo(), GetSystemArchitecture(), GetWatchpointSlotCount(), HandleStopReply(), IsAlive(), KillDebugserverProcess(), LaunchAndConnectToDebugserver(), LoadStubBinaries(), MaybeLoadExecutableModule(), ModulesDidLoad(), PrefetchModuleSpecs(), ProcessGDBRemote(), PutSTDIN(), SaveCore(), SendEventData(), SetLastStopPacket(), SetThreadStopInfo(), StopAsyncThread(), SupportsMemoryTagging(), TraceGetBinaryData(), TraceGetState(), TraceStart(), TraceStop(), TraceSupported(), UpdateAutomaticSignalFiltering(), UpdateThreadIDList(), UpdateThreadIDsFromStopReplyThreadsValue(), and WillPublicStop().
|
protected |
Definition at line 296 of file ProcessGDBRemote.h.
Referenced by RefreshStateAfterStop().
|
protected |
Definition at line 277 of file ProcessGDBRemote.h.
Referenced by CalculateThreadStopInfo(), SetThreadStopInfo(), and WillResume().
|
protected |
Definition at line 279 of file ProcessGDBRemote.h.
Referenced by CalculateThreadStopInfo(), UpdateThreadIDList(), WillPublicStop(), and WillResume().
|
private |
Definition at line 430 of file ProcessGDBRemote.h.
Referenced by UpdateAutomaticSignalFiltering().
|
protected |
Definition at line 262 of file ProcessGDBRemote.h.
Referenced by RefreshStateAfterStop(), SetLastStopPacket(), and UpdateThreadIDList().
|
protected |
Definition at line 263 of file ProcessGDBRemote.h.
|
protected |
Definition at line 287 of file ProcessGDBRemote.h.
Referenced by DoReadMemory(), DoWriteMemory(), GetMaxMemorySize(), and SetUserSpecifiedMaxMemoryTransferSize().
|
private |
Definition at line 428 of file ProcessGDBRemote.h.
Referenced by HandleAsyncMisc().
|
protected |
Definition at line 265 of file ProcessGDBRemote.h.
Referenced by AddRemoteRegisters(), BuildDynamicRegisterInfo(), GetGDBServerRegisterInfo(), and ParsePythonTargetDefinition().
|
private |
Definition at line 495 of file ProcessGDBRemote.h.
Referenced by GetGDBServerRegisterInfo(), and GetGDBServerRegisterInfoXMLAndProcess().
|
private |
Definition at line 490 of file ProcessGDBRemote.h.
Referenced by GetGDBServerRegisterInfo(), and GetGDBServerRegisterInfoXMLAndProcess().
|
protected |
Definition at line 289 of file ProcessGDBRemote.h.
Referenced by GetMaxMemorySize(), and SetUserSpecifiedMaxMemoryTransferSize().
|
protected |
Definition at line 292 of file ProcessGDBRemote.h.
Referenced by StartNoticingNewThreads(), and StopNoticingNewThreads().
|
private |
Definition at line 429 of file ProcessGDBRemote.h.
Referenced by HarmonizeThreadIdsForProfileData().
|
protected |
Definition at line 274 of file ProcessGDBRemote.h.
Referenced by CalculateThreadStopInfo(), ClearThreadIDList(), DidFork(), DidVFork(), DoUpdateThreadList(), RefreshStateAfterStop(), SetThreadPc(), SetThreadStopInfo(), UpdateThreadIDList(), and UpdateThreadIDsFromStopReplyThreadsValue().
|
protected |
Definition at line 276 of file ProcessGDBRemote.h.
Referenced by CalculateThreadStopInfo(), ClearThreadIDList(), RefreshStateAfterStop(), SetThreadPc(), SetThreadStopInfo(), UpdateThreadIDList(), and UpdateThreadPCsFromStopReplyThreadsValue().
|
protected |
Definition at line 297 of file ProcessGDBRemote.h.
Referenced by lldb_private::process_gdb_remote::ThreadGDBRemote::CreateRegisterContextForFrame(), and ProcessGDBRemote().
|
protected |
Definition at line 305 of file ProcessGDBRemote.h.
Referenced by DidExec(), DidVFork(), and DidVForkDone().
|
protected |
Definition at line 293 of file ProcessGDBRemote.h.