[all-commits] [llvm/llvm-project] 03e29e: [lldb/DWARF] Reland: Use DW_AT_call_pc to determin...

Vedant Kumar via All-commits all-commits at lists.llvm.org
Tue Mar 24 12:54:47 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 03e29e2c19a8e1f6a225b1878df3eed4e54891e5
      https://github.com/llvm/llvm-project/commit/03e29e2c19a8e1f6a225b1878df3eed4e54891e5
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M lldb/include/lldb/Symbol/Function.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Symbol/Function.cpp
    M lldb/source/Target/StackFrameList.cpp
    M lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/main.cpp

  Log Message:
  -----------
  [lldb/DWARF] Reland: Use DW_AT_call_pc to determine artificial frame address

Reland with changes: the test modified in this change originally failed
on a Debian/x86_64 builder, and I suspect the cause was that lldb looked
up the line location for an artificial frame by subtracting 1 from the
frame's address. For artificial frames, the subtraction must not happen
because the address is already exact.

---

lldb currently guesses the address to use when creating an artificial
frame (i.e., a frame constructed by determining the sequence of (tail)
calls which must have happened).

Guessing the address creates problems -- use the actual address provided
by the DW_AT_call_pc attribute instead.

Depends on D76336.

rdar://60307600

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




More information about the All-commits mailing list