[Lldb-commits] [PATCH] D70100: [DWARF] Handle call sites with indirect call targets

Vedant Kumar via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Nov 11 14:56:16 PST 2019


vsk created this revision.
vsk added reviewers: aprantl, friss, jingham.

Split CallEdge into DirectCallEdge and IndirectCallEdge. Teach
DWARFExpression how to evaluate entry values in cases where the current
activation was created by an indirect call.

Writing tests for this is challenging, at the moment, because llvm emits
DW_AT_call_targets describing clobbered register values (llvm.org/PR43926).
I found a way to cover the non-tail call case, but would have to resort to
flaky assembly gadgets to test indirect tail-calls. I've left this for later.

rdar://57094085


https://reviews.llvm.org/D70100

Files:
  lldb/include/lldb/Symbol/Function.h
  lldb/include/lldb/Symbol/SymbolFile.h
  lldb/packages/Python/lldbsuite/test/functionalities/param_entry_vals/basic_entry_values_x86_64/main.cpp
  lldb/source/Expression/DWARFExpression.cpp
  lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
  lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
  lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
  lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
  lldb/source/Symbol/Function.cpp
  lldb/source/Target/StackFrameList.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D70100.228771.patch
Type: text/x-patch
Size: 27476 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191111/bf7fa5f6/attachment-0001.bin>


More information about the lldb-commits mailing list