aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectWatchpoint.cpp
diff options
context:
space:
mode:
authorDavid Stenberg <david.stenberg@ericsson.com>2020-02-27 09:54:37 +0100
committerDavid Stenberg <david.stenberg@ericsson.com>2020-02-27 11:18:51 +0100
commit6d857166d218ccedfff3b177a4489420e3bdd603 (patch)
tree59a62d601413d2002689710b8f2bef2ba1ba3868 /lldb/source/Commands/CommandObjectWatchpoint.cpp
parentff574ff291e73b78164aade9d456d364bbf93a03 (diff)
downloadllvm-6d857166d218ccedfff3b177a4489420e3bdd603.zip
llvm-6d857166d218ccedfff3b177a4489420e3bdd603.tar.gz
llvm-6d857166d218ccedfff3b177a4489420e3bdd603.tar.bz2
[DebugInfo] Describe call site values for chains of expression producing instrs
Summary: If the describeLoadedValue() hook produced a DIExpression when describing a instruction, and it was not possible to emit a call site entry directly (the value operand was not an immediate nor a preserved register), then that described value could not be inserted into the worklist, and would instead be dropped, meaning that the parameter's call site value couldn't be described. This patch extends the worklist so that each entry has an DIExpression that is built up when iterating through the instructions. This allows us to describe instruction chains like this: $reg0 = mv $fp $reg0 = add $reg0, offset call @call_with_offseted_fp Since DW_OP_LLVM_entry_value operations can't be combined with any other expression, such call site entries will not be emitted. I have added a test, dbgcall-site-expr-entry-value.mir, which verifies that we don't assert or emit broken DWARF in such cases. Reviewers: djtodoro, aprantl, vsk Reviewed By: djtodoro, vsk Subscribers: hiraditya, llvm-commits Tags: #debug-info, #llvm Differential Revision: https://reviews.llvm.org/D75036
Diffstat (limited to 'lldb/source/Commands/CommandObjectWatchpoint.cpp')
0 files changed, 0 insertions, 0 deletions