diff options
Diffstat (limited to 'lldb/source/Plugins')
-rw-r--r-- | lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp | 26 | ||||
-rw-r--r-- | lldb/source/Plugins/Process/minidump/ProcessMinidump.h | 5 |
2 files changed, 22 insertions, 9 deletions
diff --git a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp index fe437ce00aa..cfebc5504f2 100644 --- a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp +++ b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp @@ -180,14 +180,14 @@ bool ProcessMinidump::IsAlive() { return true; } bool ProcessMinidump::WarnBeforeDetach() const { return false; } size_t ProcessMinidump::ReadMemory(lldb::addr_t addr, void *buf, size_t size, - lldb_private::Error &error) { + Error &error) { // Don't allow the caching that lldb_private::Process::ReadMemory does // since we have it all cached in our dump file anyway. return DoReadMemory(addr, buf, size, error); } size_t ProcessMinidump::DoReadMemory(lldb::addr_t addr, void *buf, size_t size, - lldb_private::Error &error) { + Error &error) { llvm::ArrayRef<uint8_t> mem = m_minidump_parser.GetMemory(addr, size); if (mem.empty()) { @@ -211,8 +211,8 @@ ArchSpec ProcessMinidump::GetArchitecture() { return ArchSpec(triple); } -Error ProcessMinidump::GetMemoryRegionInfo( - lldb::addr_t load_addr, lldb_private::MemoryRegionInfo &range_info) { +Error ProcessMinidump::GetMemoryRegionInfo(lldb::addr_t load_addr, + MemoryRegionInfo &range_info) { Error error; auto info = m_minidump_parser.GetMemoryRegionInfo(load_addr); if (!info) { @@ -225,9 +225,8 @@ Error ProcessMinidump::GetMemoryRegionInfo( void ProcessMinidump::Clear() { Process::m_thread_list.Clear(); } -bool ProcessMinidump::UpdateThreadList( - lldb_private::ThreadList &old_thread_list, - lldb_private::ThreadList &new_thread_list) { +bool ProcessMinidump::UpdateThreadList(ThreadList &old_thread_list, + ThreadList &new_thread_list) { uint32_t num_threads = 0; if (m_thread_list.size() > 0) num_threads = m_thread_list.size(); @@ -291,3 +290,16 @@ void ProcessMinidump::ReadModuleList() { load_addr_changed); } } + +bool ProcessMinidump::GetProcessInfo(ProcessInstanceInfo &info) { + info.Clear(); + info.SetProcessID(GetID()); + info.SetArchitecture(GetArchitecture()); + lldb::ModuleSP module_sp = GetTarget().GetExecutableModule(); + if (module_sp) { + const bool add_exe_file_as_first_arg = false; + info.SetExecutableFile(GetTarget().GetExecutableModule()->GetFileSpec(), + add_exe_file_as_first_arg); + } + return true; +} diff --git a/lldb/source/Plugins/Process/minidump/ProcessMinidump.h b/lldb/source/Plugins/Process/minidump/ProcessMinidump.h index 30637c2579a..78eadc809a4 100644 --- a/lldb/source/Plugins/Process/minidump/ProcessMinidump.h +++ b/lldb/source/Plugins/Process/minidump/ProcessMinidump.h @@ -46,8 +46,7 @@ public: static const char *GetPluginDescriptionStatic(); ProcessMinidump(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, - const lldb_private::FileSpec &core_file, - MinidumpParser minidump_parser); + const FileSpec &core_file, MinidumpParser minidump_parser); ~ProcessMinidump() override; @@ -81,6 +80,8 @@ public: Error GetMemoryRegionInfo(lldb::addr_t load_addr, MemoryRegionInfo &range_info) override; + bool GetProcessInfo(ProcessInstanceInfo &info) override; + MinidumpParser m_minidump_parser; protected: |