[all-commits] [llvm/llvm-project] bddd28: [lldb/DWARF] Add support for pre-standard GNU call...

Pavel Labath via All-commits all-commits at lists.llvm.org
Tue Jun 2 03:58:12 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: bddd2888264492a6deb0d447ee6ac042d3fb44e4
      https://github.com/llvm/llvm-project/commit/bddd2888264492a6deb0d447ee6ac042d3fb44e4
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-06-02 (Tue, 02 Jun 2020)

  Changed paths:
    M lldb/source/Expression/DWARFExpression.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/test/API/functionalities/param_entry_vals/basic_entry_values/TestBasicEntryValues.py
    M lldb/test/API/functionalities/param_entry_vals/basic_entry_values/main.cpp
    R lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq1/Makefile
    M lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq1/TestAmbiguousTailCallSeq1.py
    R lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq2/Makefile
    M lldb/test/API/functionalities/tail_call_frames/ambiguous_tail_call_seq2/TestAmbiguousTailCallSeq2.py
    M lldb/test/API/functionalities/tail_call_frames/cross_dso/Makefile
    M lldb/test/API/functionalities/tail_call_frames/cross_dso/One.mk
    M lldb/test/API/functionalities/tail_call_frames/cross_dso/Two.mk
    M lldb/test/API/functionalities/tail_call_frames/cross_object/Makefile
    R lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/Makefile
    M lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/TestDisambiguateCallSite.py
    M lldb/test/API/functionalities/tail_call_frames/disambiguate_call_site/main.cpp
    R lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/Makefile
    M lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/TestDisambiguatePathsToCommonSink.py
    M lldb/test/API/functionalities/tail_call_frames/disambiguate_paths_to_common_sink/main.cpp
    R lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/Makefile
    M lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/TestDisambiguateTailCallSeq.py
    M lldb/test/API/functionalities/tail_call_frames/disambiguate_tail_call_seq/main.cpp
    R lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/Makefile
    M lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/TestInliningAndTailCalls.py
    M lldb/test/API/functionalities/tail_call_frames/inlining_and_tail_calls/main.cpp
    M lldb/test/API/functionalities/tail_call_frames/sbapi_support/Makefile
    R lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/Makefile
    M lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/TestArtificialFrameStepOutMessage.py
    M lldb/test/API/functionalities/tail_call_frames/thread_step_out_message/main.cpp
    M lldb/test/API/functionalities/tail_call_frames/thread_step_out_or_return/Makefile
    R lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/Makefile
    M lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py
    M lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/main.cpp

  Log Message:
  -----------
  [lldb/DWARF] Add support for pre-standard GNU call site attributes

Summary:
The code changes are very straight-forward -- just handle both DW_AT_GNU
and DW_AT_call versions of all tags and attributes. There is just one
small gotcha: in the GNU version, DW_AT_low_pc was used both for the
"return pc" and the "call pc" values, depending on whether the tag was
describing a tail call, while the official scheme uses different
attributes for the two things.

Reviewers: vsk, dblaikie

Subscribers: lldb-commits

Tags: #lldb

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


  Commit: 04aea769bfad4ec78242adc2241aa751d10862f8
      https://github.com/llvm/llvm-project/commit/04aea769bfad4ec78242adc2241aa751d10862f8
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2020-06-02 (Tue, 02 Jun 2020)

  Changed paths:
    M llvm/include/llvm/Support/DataExtractor.h
    M llvm/lib/Support/DataExtractor.cpp
    M llvm/test/DebugInfo/X86/dwarfdump-debug-loc-error-cases2.s
    M llvm/test/DebugInfo/X86/dwarfdump-debug-loclists-error-cases2.s
    M llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_extended_length_field.s
    M llvm/test/tools/llvm-dwarfdump/X86/debug_addr_too_small_for_length_field.s
    M llvm/test/tools/llvm-dwarfdump/X86/debug_rnglists_invalid.s
    M llvm/unittests/DebugInfo/DWARF/DWARFAcceleratorTableTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFDataExtractorTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFDebugArangeSetTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp
    M llvm/unittests/Support/DataExtractorTest.cpp

  Log Message:
  -----------
  [Support] Make DataExtractor error messages more clear

Summary:
This is a result of the discussion at D78113. Previously we would be
only giving the current offset at which the error was detected. However,
this was phrased somewhat ambiguously (as it could also mean that end of
data was at that offset). The new error message includes the current
offset as well as the extent of the data being read.

I've changed a couple of file-level static functions into private member
functions in order to avoid passing a bunch of new arguments everywhere.

Reviewers: dblaikie, jhenderson

Subscribers: hiraditya, MaskRay, llvm-commits

Tags: #llvm

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


Compare: https://github.com/llvm/llvm-project/compare/c3902b62e637...04aea769bfad


More information about the All-commits mailing list