Load correct module for linux and android when duplicates exist in minidump.
authorGreg Clayton <gclayton@fb.com>
Fri, 21 Aug 2020 21:40:21 +0000 (14:40 -0700)
committerGreg Clayton <gclayton@fb.com>
Wed, 26 Aug 2020 22:48:34 +0000 (15:48 -0700)
commitc55db4600b4bdc5664784983fefb82bd8189bafc
tree9959e75efdf09e464dab0fc968ffa28262aed965
parent92d3e70df3ccb9e6528f0c95bae48c0a8f9b703b
Load correct module for linux and android when duplicates exist in minidump.

Breakpad creates minidump files that can a module loaded multiple times. We found that when a process mmap's the object file for a library, this can confuse breakpad into creating multiple modules in the module list. This patch fixes the GetFilteredModules() to check the linux maps for permissions and use the one that has execute permissions. Typically when people mmap a file into memory they don't map it as executable. This helps people to correctly load minidump files for post mortem analysis.

Differential Revision: https://reviews.llvm.org/D86375
lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
lldb/source/Plugins/Process/minidump/MinidumpParser.h
lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
lldb/unittests/Process/minidump/MinidumpParserTest.cpp