[all-commits] [llvm/llvm-project] ba14da: [lldb] Use the function block as a source for func...

Pavel Labath via All-commits all-commits at lists.llvm.org
Tue Dec 3 01:21:27 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ba14dac481564000339ba22ab867617590184f4c
      https://github.com/llvm/llvm-project/commit/ba14dac481564000339ba22ab867617590184f4c
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2024-12-03 (Tue, 03 Dec 2024)

  Changed paths:
    M lldb/include/lldb/Symbol/Function.h
    M lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
    M lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
    M lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
    M lldb/source/Symbol/Function.cpp
    M lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-function.s
    M lldb/test/Shell/SymbolFile/PDB/function-nested-block.test

  Log Message:
  -----------
  [lldb] Use the function block as a source for function ranges (#117996)

This is a follow-up/reimplementation of #115730. While working on that
patch, I did not realize that the correct (discontinuous) set of ranges
is already stored in the block representing the whole function. The
catch -- ranges for this block are only set later, when parsing all of
the blocks of the function.

This patch changes that by populating the function block ranges eagerly
-- from within the Function constructor. This also necessitates a
corresponding change in all of the symbol files -- so that they stop
populating the ranges of that block. This allows us to avoid some
unnecessary work (not parsing the function DW_AT_ranges twice) and also
results in some simplification of the parsing code.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list