summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2018-12-14 19:36:01 +0000
committerGreg Clayton <gclayton@apple.com>2018-12-14 19:36:01 +0000
commit026e1bf56a4be9f10131f3a3f81f11b06377a5c5 (patch)
tree3d7789c4fc1cab6a3e05e58a9a1c2dccc2b9b545 /lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
parentcac3d118ae775647f432c2d0159eca562c486744 (diff)
downloadbcm5719-llvm-026e1bf56a4be9f10131f3a3f81f11b06377a5c5.tar.gz
bcm5719-llvm-026e1bf56a4be9f10131f3a3f81f11b06377a5c5.zip
Cache memory regions in ProcessMinidump and use the linux maps as the source of the information if available
Breakpad creates minidump files that sometimes have: - linux maps textual content - no MemoryInfoList Right now unless the file has a MemoryInfoList we get no region information. This patch: - reads and caches the memory region info one time and sorts it for easy subsequent access - get the region info from the best source in this order: - linux maps info (if available) - MemoryInfoList (if available) - MemoryList or Memory64List - returns memory region info for the gaps between regions (before the first and after the last) Differential Revision: https://reviews.llvm.org/D55522 llvm-svn: 349182
Diffstat (limited to 'lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp')
-rw-r--r--lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
index 97e13762270..1744b65e38b 100644
--- a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
+++ b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
@@ -284,14 +284,8 @@ ArchSpec ProcessMinidump::GetArchitecture() {
Status ProcessMinidump::GetMemoryRegionInfo(lldb::addr_t load_addr,
MemoryRegionInfo &range_info) {
- Status error;
- auto info = m_minidump_parser.GetMemoryRegionInfo(load_addr);
- if (!info) {
- error.SetErrorString("No valid MemoryRegionInfo found!");
- return error;
- }
- range_info = info.getValue();
- return error;
+ range_info = m_minidump_parser.GetMemoryRegionInfo(load_addr);
+ return Status();
}
void ProcessMinidump::Clear() { Process::m_thread_list.Clear(); }
OpenPOWER on IntegriCloud