teak-llvm/lldb/packages/Python/lldbsuite/test/functionalities/data-formatter
Fred Riss 0478eadf73 [lldb/DataFormatters] Fix the $$deference$$ synthetic child
Summary:
The ValueObject code checks for a special `$$dereference$$` synthetic
child to allow formatter providers to implement a natural
dereferencing behavior in `frame variable` for objects like smart
pointers.

This support was broken when used directly throught the Python API and
not trhough `frame variable`. The reason is that
SBFrame.FindVariable() will return by default the synthetic variable
if it exists, while `frame variable` will not do this eagerly. The
code in `ValueObject::Dereference()` accounted for the latter but not
for the former. The fix is trivial. The test change includes
additional covergage for the already-working bahevior as it wasn't
covered by the testsuite before.

This commit also adds a short piece of documentatione explaining that
it is possible (even advisable) to provide this synthetic child
outstide of the range of the normal children.

Reviewers: jingham

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D73053
2020-01-21 13:35:55 -08:00
..
array_typedef Data formatters: Look through array element typedefs 2020-01-10 11:45:24 +01:00
boolreference [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
compactvectors [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-advanced [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-caching Add prototype for a function we call. 2019-12-18 14:18:52 -08:00
data-formatter-categories [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-cpp [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-disabling [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-enum-format [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-globals [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-named-summaries [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-objc [lldb] Re-add NSDate formatter 2020-01-17 08:56:05 +01:00
data-formatter-proper-plurals [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-ptr-to-array [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-python-synth [lldb/DataFormatters] Fix the $$deference$$ synthetic child 2020-01-21 13:35:55 -08:00
data-formatter-script [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-skip-summary [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-smart-array [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-stl [lldb] Add expect_expr function for testing expression evaluation in dotests. 2020-01-15 13:04:04 +01:00
data-formatter-synth [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-synthtype [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
data-formatter-synthval [dotest] Avoid the need for LEVEL= makefile boilerplate 2019-09-04 07:46:25 +00:00
dump_dynamic [dotest] Delete trivial inline test makefiles 2019-09-05 06:55:23 +00:00
format-propagation [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
frameformat_smallstruct [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
hexcaps [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
language_category_updates [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
nsarraysynth [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
nsdictionarysynth [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
nssetsynth [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
ostypeformatting [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
parray [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
poarray [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
ptr_ref_typedef [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
pyobjsynthprovider [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
refpointer-recursion [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
setvaluefromcstring [dotest] Delete trivial inline test makefiles 2019-09-05 06:55:23 +00:00
stringprinter [dotest] Delete trivial inline test makefiles 2019-09-05 06:55:23 +00:00
summary-string-onfail [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
synthcapping [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
synthupdate [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
type_summary_list_arg [lldb][NFC] Remove all setUp overrides that only call the parent implementation 2019-12-13 12:34:49 +01:00
type_summary_list_script [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
typedef_array [dotest] Delete trivial inline test makefiles 2019-09-05 06:55:23 +00:00
user-format-vs-summary [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
var-in-aggregate-misuse [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
varscript_formatting [lldb][NFC] Remove 'from __future__ import print_function' from all tests that don't actually call 'print()' 2019-12-13 12:23:04 +01:00
vector-types [dotest] Avoid the need for LEVEL= makefile boilerplate 2019-09-04 07:46:25 +00:00
.categories