|
LLDB mainline
|
Base class for all processes that don't represent a live process, such as coredumps or processes traced in the past. More...
#include <PostMortemProcess.h>
Public Member Functions | |
| PostMortemProcess (lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const FileSpec &core_file) | |
| bool | IsLiveDebugSession () const override |
| Check if a process is a live debug session, or a corefile/post-mortem. | |
| FileSpec | GetCoreFile () const override |
| Provide a way to retrieve the core dump file that is loaded for debugging. | |
| 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 bool | SupportsReverseDirection () |
| Reports whether this process supports reverse execution. | |
| virtual Status | DoResume (lldb::RunDirection direction) |
| 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) |
| virtual lldb_private::UUID | FindModuleUUID (const llvm::StringRef path) |
| 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 | 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. | |
| virtual llvm::SmallVector< llvm::MutableArrayRef< uint8_t > > | ReadMemoryRanges (llvm::ArrayRef< Range< lldb::addr_t, size_t > > ranges, llvm::MutableArrayRef< uint8_t > buffer) |
| Read from multiple memory ranges and write the results into buffer. | |
| size_t | ReadMemoryFromInferior (lldb::addr_t vm_addr, void *buf, size_t size, Status &error) |
| Read of memory from a process. | |
| lldb::offset_t | ReadMemoryInChunks (lldb::addr_t vm_addr, void *buf, lldb::addr_t chunk_size, lldb::offset_t total_size, ReadMemoryChunkCallback callback) |
| Read of memory from a process in discrete chunks, terminating either when all bytes are read, or the supplied callback returns IterationAction::Stop. | |
| 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 () |
| bool | CurrentThreadPosesAsPrivateStateThread () |
| 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) |
| lldb::RunDirection | GetBaseDirection () const |
| Get the base run direction for the process. | |
| void | SetBaseDirection (lldb::RunDirection direction) |
| Set the base run direction for the process. | |
| 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) |
| void | DisableLanguageRuntimeUnwindPlansCallback () |
| 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 |
| bool | TrackMemoryCacheChanges () const |
| Public Member Functions inherited from lldb_private::Properties | |
| Properties () | |
| Properties (const lldb::OptionValuePropertiesSP &collection_sp) | |
| virtual | ~Properties () |
| 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. | |
| lldb::BroadcasterManagerSP | GetManager () |
| void | SetPrimaryListener (lldb::ListenerSP listener_sp) |
| lldb::ListenerSP | GetPrimaryListener () |
| Public Member Functions inherited from lldb_private::ExecutionContextScope | |
| virtual | ~ExecutionContextScope ()=default |
| 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 |
Private Member Functions | |
| 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. | |
Additional Inherited Members | |
| Public Types inherited from lldb_private::Process | |
| enum | { eBroadcastBitStateChanged = (1 << 0) , eBroadcastBitInterrupt = (1 << 1) , eBroadcastBitSTDOUT = (1 << 2) , eBroadcastBitSTDERR = (1 << 3) , eBroadcastBitProfileData = (1 << 4) , eBroadcastBitStructuredData = (1 << 5) } |
| Broadcaster event bits definitions. More... | |
| enum | { eBroadcastInternalStateControlStop = (1 << 0) , eBroadcastInternalStateControlPause = (1 << 1) , eBroadcastInternalStateControlResume = (1 << 2) } |
| typedef Range< lldb::addr_t, lldb::addr_t > | LoadRange |
| typedef ProcessRunLock::ProcessRunLocker | StopLocker |
| typedef std::function< IterationAction(lldb_private::Status &error, lldb::addr_t bytes_addr, const void *bytes, lldb::offset_t bytes_size)> | ReadMemoryChunkCallback |
| typedef bool | PreResumeActionCallback(void *) |
| 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 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) |
| Static Public Attributes inherited from lldb_private::Process | |
| static constexpr int | g_all_event_bits |
| static constexpr llvm::StringRef | AttachSynchronousHijackListenerName |
| static constexpr llvm::StringRef | LaunchSynchronousHijackListenerName |
| static constexpr llvm::StringRef | ResumeSynchronousHijackListenerName |
| 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 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 inherited from lldb_private::Process | |
| static void | STDIOReadThreadBytesReceived (void *baton, const void *src, size_t src_len) |
Base class for all processes that don't represent a live process, such as coredumps or processes traced in the past.
lldb_private::Process virtual functions overrides that are common between these kinds of processes can have default implementations in this class.
Definition at line 23 of file PostMortemProcess.h.
|
inline |
Definition at line 27 of file PostMortemProcess.h.
References m_core_file, and Process().
Referenced by ProcessElfCore::ProcessElfCore(), ProcessFreeBSDKernel::ProcessFreeBSDKernel(), ProcessMachCore::ProcessMachCore(), lldb_private::minidump::ProcessMinidump::ProcessMinidump(), and lldb_private::ProcessTrace::ProcessTrace().
|
inlineoverridevirtual |
Provide a way to retrieve the core dump file that is loaded for debugging.
Only available if IsLiveDebugSession() returns false.
Reimplemented from lldb_private::Process.
Definition at line 33 of file PostMortemProcess.h.
References m_core_file.
|
inlineoverridevirtual |
Check if a process is a live debug session, or a corefile/post-mortem.
Reimplemented from lldb_private::Process.
Definition at line 31 of file PostMortemProcess.h.
|
private |
Construct with a shared pointer to a target, and the Process listener.
Uses the Host UnixSignalsSP by default.
Definition at line 2788 of file Process.cpp.
Referenced by PostMortemProcess().
|
private |
Construct with a shared pointer to a target, the Process listener, and the appropriate UnixSignalsSP for the process.
Definition at line 2792 of file Process.cpp.
References lldb_private::Process::m_os_up.
|
protected |
Definition at line 36 of file PostMortemProcess.h.
Referenced by ProcessElfCore::CanDebug(), ProcessMachCore::CanDebug(), GetCoreFile(), and PostMortemProcess().