llvm-capstone/lldb/source
Greg Clayton 838bba9c34 Allow partial UUID matching in Minidump core file plug-in
Breakpad had bugs in earlier versions where it would take a 20 byte ELF build ID and put it into the minidump file as a 16 byte PDB70 UUID with an age of zero. This would make it impossible to do postmortem debugging with one of these older minidump files.

This fix allows partial matching of UUIDs. To do this we first try and match with the full UUID value, and then fall back to removing the original directory path from the module specification and we remove the UUID requirement, and then manually do the matching ourselves. This allows scripts to find symbols files using a symbol server, place them all in a directory, use the "setting set target.exec-search-paths" setting to specify the directory, and then load the core file. The Target::GetSharedModule() can then find the correct file without doing any other matching and load it.

Tests were added to cover a partial UUID match where the breakpad file has a 16 byte UUID and the actual file on disk has a 20 byte UUID, both where the first 16 bytes match, and don't match.

Differential Revision: https://reviews.llvm.org/D60001

llvm-svn: 357482
2019-04-02 15:40:54 +00:00
..
API Make operator==s consistent between c++ and python APIs 2019-04-02 10:18:46 +00:00
Breakpoint Use the multi-lockable form of std::lock for operator= 2019-03-29 17:07:30 +00:00
Commands Quiet command regex instructions during batch execution 2019-03-10 23:15:48 +00:00
Core [CMake] Move link dependencies where they are used. 2019-03-29 17:47:26 +00:00
DataFormatters [DataFormatters] Remove LLDB_DISABLE_PYTHON from TypeCategory. 2019-03-15 16:55:51 +00:00
Expression Fix an invalid static cast in ClangExpressionParser.cpp 2019-03-13 19:46:30 +00:00
Host [CMake] Move link dependencies where they are used. 2019-03-29 17:47:26 +00:00
Initialization [Reproducers] Initialize reproducers before initializing the debugger. 2019-02-21 22:26:16 +00:00
Interpreter [NFC] find_first_of/find_last_of -> find/rfind for single char. 2019-03-28 18:10:14 +00:00
Plugins Allow partial UUID matching in Minidump core file plug-in 2019-04-02 15:40:54 +00:00
Symbol Remove the TypePair class 2019-03-26 13:35:54 +00:00
Target [Process] Use early returns in Process::WriteMemory (NFC) 2019-04-01 20:39:03 +00:00
Utility [CMake] Move link dependencies where they are used. 2019-03-29 17:47:26 +00:00
CMakeLists.txt [CMake] Unify scripts for generating VCS headers 2019-02-06 03:51:00 +00:00
lldb.cpp [CMake] Unify scripts for generating VCS headers 2019-02-06 03:51:00 +00:00