[all-commits] [llvm/llvm-project] 0e6c9a: Add hashing of the .text section to ProcessMinidump.
Greg Clayton via All-commits
all-commits at lists.llvm.org
Mon Aug 24 11:44:11 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 0e6c9a6e7940a2f8ee624358d828acffdb9ccca5
https://github.com/llvm/llvm-project/commit/0e6c9a6e7940a2f8ee624358d828acffdb9ccca5
Author: Greg Clayton <gclayton at fb.com>
Date: 2020-08-24 (Mon, 24 Aug 2020)
Changed paths:
M lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
M lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpUUID.py
A lldb/test/API/functionalities/postmortem/minidump-new/libbreakpad-overflow.yaml
A lldb/test/API/functionalities/postmortem/minidump-new/libbreakpad.yaml
A lldb/test/API/functionalities/postmortem/minidump-new/linux-arm-breakpad-uuid-match.yaml
A lldb/test/API/functionalities/postmortem/minidump-new/linux-arm-facebook-uuid-match.yaml
Log Message:
-----------
Add hashing of the .text section to ProcessMinidump.
Breakpad will always have a UUID for binaries when it creates minidump files. If an ELF files has a GNU build ID, it will use that. If it doesn't, it will create one by hashing up to the first 4096 bytes of the .text section. LLDB was not able to load these binaries even when we had the right binary because the UUID didn't match. LLDB will use the GNU build ID first as the main UUID for a binary and fallback onto a 8 byte CRC if a binary doesn't have one. With this fix, we will check for the Breakpad hash or the Facebook hash (a modified version of the breakpad hash that collides a bit less) and accept binaries when these hashes match.
Differential Revision: https://reviews.llvm.org/D86261
More information about the All-commits
mailing list