[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