llvm-project/lldb/test
Pavel Labath 19d64138e6 [lldb] Fix "frame var" for large bitfields
The problem here is in the "sliding" code in
ValueObjectChild::UpdateValue. It modifies m_bitfield_bit_offset and
m_value to ensure the bitfield value fits the window given by the
underlying type.

However, this is broken next time UpdateValue is called, because it
updates the m_value value from the parent. However, the value cannot be
slid again because the m_bitfield_bit_offset is already modified.

It seems this can happen only under specific circumstances. One way to
trigger is is to run an expression which can be interpreted (jitting it
causes a new StackFrame and ValueObject variables to be created).

I fix this bug by modifying m_byte_offset instead of m_scalar, and
ensuring the changes are folded into m_scalar regardless of how many
times UpdateValue is called.

Differential Revision: https://reviews.llvm.org/D88992
2020-10-08 18:42:50 +02:00
..
API [lldb] Fix "frame var" for large bitfields 2020-10-08 18:42:50 +02:00
Shell [lldb] Initial version of FreeBSD remote process plugin 2020-10-08 16:03:00 +02:00
Unit [lldb] Use config.lldb_src_root in lit_config.load_config (NFC) 2020-09-29 23:05:12 -07:00
CMakeLists.txt [lldb] [testsuite] Add split-file for check-lldb dependencies 2020-08-18 18:10:55 +02:00
lit.cfg.py [test] Cleanup top-level lit.cfg.py 2019-10-10 19:51:47 +00:00
lit.site.cfg.py.in [lldb] Get rid of helper CMake variables for Python 2020-08-17 08:47:52 -07:00