forked from OSchip/llvm-project
87f4f413ba
Summary: When lldb is processing a location containing DW_OP_piece, the result is being stored in the 'pieces' variable. The location is popped from the 'stack' variable. So this check to see that 'stack' is not empty was invalid and caused the pieces after the first to not get processed. I am working on an architecture which has 16-bit and 8-bit registers. So this problem was quite easy to see. But I was able to re-produce this issue on x86 too with long long variable and compiling woth -m32. It resulted in following location list. 00000014 08048496 080484b5 (DW_OP_reg6 (esi); DW_OP_piece: 4; DW_OP_reg7 (edi); DW_OP_piece: 4) and lldb was only showing the contents of first register when I evaluated the variable as it does not process the 2nd piece due to this check. Reviewers: clayborg, aprantl Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12674 llvm-svn: 247124 |
||
---|---|---|
clang | ||
clang-tools-extra | ||
compiler-rt | ||
debuginfo-tests | ||
libclc | ||
libcxx | ||
libcxxabi | ||
libunwind | ||
lld | ||
lldb | ||
llgo | ||
llvm | ||
openmp | ||
polly |