[all-commits] [llvm/llvm-project] a84295: [lldb] Add a SymbolFileProvider to record and repl...

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Mon Aug 24 15:09:27 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a842950b62b6d029a392c3c312c6495d6368c2a4
      https://github.com/llvm/llvm-project/commit/a842950b62b6d029a392c3c312c6495d6368c2a4
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2020-08-24 (Mon, 24 Aug 2020)

  Changed paths:
    M lldb/include/lldb/Utility/Reproducer.h
    M lldb/include/lldb/Utility/ReproducerProvider.h
    M lldb/source/Commands/CommandObjectReproducer.cpp
    M lldb/source/Symbol/LocateSymbolFile.cpp
    M lldb/source/Symbol/LocateSymbolFileMacOSX.cpp
    M lldb/source/Utility/ReproducerProvider.cpp
    A lldb/test/Shell/Reproducer/Inputs/core
    A lldb/test/Shell/Reproducer/Inputs/dsymforuuid.sh
    A lldb/test/Shell/Reproducer/TestDebugSymbols.test

  Log Message:
  -----------
  [lldb] Add a SymbolFileProvider to record and replay calls to dsymForUUID

When replaying a reproducer captured from a core file, we always use
dsymForUUID for the kernel binary. When enabled, we also use it to find
kexts. Since these files are already contained in the reproducer,
there's no reason to call out to an external tool. If the tool returns a
different result, e.g. because the dSYM got garbage collected, it will
break reproducer replay. The SymbolFileProvider solves the issue by
mapping UUIDs to module and symbol paths in the reproducer.

Differential revision: https://reviews.llvm.org/D86389




More information about the All-commits mailing list