Go to the documentation of this file.
16 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_PROCESSELFCORE_H
17 #define LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_PROCESSELFCORE_H
34 static lldb::ProcessSP
35 CreateInstance(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp,
48 ProcessElfCore(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp,
54 bool CanDebug(lldb::TargetSP target_sp,
55 bool plugin_specified_by_name)
override;
72 error.SetErrorStringWithFormatv(
73 "error: {0} does not support resuming processes",
GetPluginName());
157 llvm::Expected<std::vector<lldb_private::CoreNote>>
165 #endif // LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_PROCESSELFCORE_H
lldb_private::DataExtractor GetAuxvData() override
llvm::Error parseLinuxNotes(llvm::ArrayRef< lldb_private::CoreNote > notes)
A description of a linux process usually contains the following NOTE entries:
size_t ReadMemory(lldb::addr_t addr, void *buf, size_t size, lldb_private::Status &error) override
Read of memory from a process.
lldb::addr_t AddAddressRangeFromLoadSegment(const elf::ELFProgramHeader &header)
std::string m_dyld_plugin_name
lldb_private::FileSpec m_core_file
bool IsAlive() override
Check if a process is still alive.
void RefreshStateAfterStop() override
Currently called as part of ShouldStop.
lldb_private::Status WillResume() override
Called before resuming to a process.
VMRangeToPermissions m_core_range_infos
lldb_private::Status DoLoadCore() override
VMRangeToFileOffset m_core_aranges
static llvm::StringRef GetPluginNameStatic()
lldb_private::DynamicLoader * GetDynamicLoader() override
Get the dynamic loader plug-in for this process.
lldb::addr_t GetImageInfoAddress() override
Get the image information address for the current process.
lldb_private::RangeDataVector< lldb::addr_t, lldb::addr_t, FileRange > VMRangeToFileOffset
static llvm::raw_ostream & error(Stream &strm)
lldb_private::Range< lldb::addr_t, lldb::addr_t > FileRange
~ProcessElfCore() override
lldb_private::RangeDataVector< lldb::addr_t, lldb::addr_t, uint32_t > VMRangeToPermissions
uint32_t GetNumThreadContexts()
bool GetProcessInfo(lldb_private::ProcessInstanceInfo &info) override
lldb_private::DataExtractor m_auxv
llvm::Error ParseThreadContextsFromNoteSegment(const elf::ELFProgramHeader &segment_header, const lldb_private::DataExtractor &segment_data)
Parse Thread context from PT_NOTE segment and store it in the thread list A note segment consists of ...
std::vector< ThreadData > m_thread_data
lldb_private::Status DoGetMemoryRegionInfo(lldb::addr_t load_addr, lldb_private::MemoryRegionInfo ®ion_info) override
DoGetMemoryRegionInfo is called by GetMemoryRegionInfo after it has removed non address bits from loa...
bool DoUpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list) override
Update the thread list following process plug-in's specific logic.
size_t DoReadMemory(lldb::addr_t addr, void *buf, size_t size, lldb_private::Status &error) override
Actually do the reading of memory from a process.
llvm::Expected< std::vector< lldb_private::CoreNote > > parseSegment(const lldb_private::DataExtractor &segment)
ProcessElfCore(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const lldb_private::FileSpec &core_file)
string(SUBSTRING ${p} 10 -1 pStripped) if($
bool WarnBeforeDetach() const override
Before lldb detaches from a process, it warns the user that they are about to lose their debug sessio...
lldb::ModuleSP m_core_module_sp
static llvm::StringRef GetPluginDescriptionStatic()
llvm::Error parseNetBSDNotes(llvm::ArrayRef< lldb_private::CoreNote > notes)
NetBSD specific Thread context from PT_NOTE segment.
lldb_private::Status DoDestroy() override
llvm::Error parseFreeBSDNotes(llvm::ArrayRef< lldb_private::CoreNote > notes)
llvm::StringRef GetPluginName() override
lldb_private::ConstString path
llvm::Error parseOpenBSDNotes(llvm::ArrayRef< lldb_private::CoreNote > notes)
std::vector< NT_FILE_Entry > m_nt_file_entries
static lldb::ProcessSP CreateInstance(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const lldb_private::FileSpec *crash_file_path, bool can_connect)
bool CanDebug(lldb::TargetSP target_sp, bool plugin_specified_by_name) override
Check if a plug-in instance can debug the file in module.
lldb_private::ArchSpec GetArchitecture()