... and use the option to govern general QObject guts display.
This allows people to completely avoid the performance impact
of attempted QObject display and still makes the feature
more prominent for our favorite use case.
Change-Id: I1e53b6448f646ab7eea9168a3cd24c77769e6328
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
After debugging through a code base that makes extensive use
of shared pointers (LLDB...) I came to the conclusion that the
display of weak and strong counts is pretty much useless and
it would be better to avoid that level in the display.
Change-Id: Ie03b05fff4f7f5b7dced2e656b404e8e7938cc25
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The capturesTexts cache may or may not be warm, and
we may or may not be able to warm it. Make the dumper
work in as much cases as possible.
Change-Id: I9d9e0ec0c6a1bcf7288352c2834fedd42071d068
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The functionality tested is used in other tested places.
Change-Id: I62883e81dab9f26ac63e1f45f039571ca1f6a32e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
qfinitestack_p.h is not self-contained, #include <stdlib.h>
manually to get access to malloc().
Change-Id: I628e5e2a872d361bb7b246ec7333efb3c94dae98
Reviewed-by: hjk <hjk@qt.io>
More compact display and arbitrary inner types.
Change-Id: I68bc1f5cc88f51e993e6e8a91556d9d745a2574a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Both LLDB 3.8/Linux and 360.x/Mac cannot display the contents
of a virtual base class when accessed to a 'secondary' path.
The problem is with LLDB itself, so don't expect Creator tests
to pass in those cases.
Change-Id: I25b005d66fa9f64766a4cc0aaaa2c865b6df8c5f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
We need DYLD_IMAGE_SUFFIX=_debug for the captures()
cache warming call to succeed even if the actual access
is by offset only.
Change-Id: I24a90b4c4187459904f14a664b992a5bba9a20eb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
We might end up with undefined boost version otherwise.
Change-Id: Ibcdc70cbce8aad42947ce4760df0208d5ebe83f7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
They are not usable in core files.
Change-Id: I2134b61f27c27862c12a679d0acf7bebc9fcc7a2
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
Depending on whether DWARF-2 or DWARF-4 is used, compilers encode
rvalue references as lvalue reference or rvalue references.
GDB doesn't understand rvalues, and there's no workaround, so restrict
the test to compiler version that use DWARF-2 by default.
(see https://sourceware.org/bugzilla/show_bug.cgi?id=14441)
Change-Id: I98ed73844571a07e81003cf99c6d7e0be37722b5
Reviewed-by: hjk <hjk@qt.io>
Having one per line makes them easier to read.
Change-Id: I4f4288ac26415cf9930c8b377972c391bd223ee4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Needs manual testing in the common case that the
intended crash does not occur.
Change-Id: I99de4f466df9e3a470a6bcb98b819d15da3a7067
Reviewed-by: hjk <hjk@qt.io>
... and make the auto test infrastructure able to handle
a test. To pass the test, some Nim compiler must be
accessible.
Change-Id: I707aa72c0f3a2ea35c7131cba490cafb41617f6c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Whatever the problem was seems to be fixed by now.
Change-Id: I0990614f5ed5b4f61f0e7d1017603fc317ada6d1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Start displaying QV4::Value again for numeric values
and QJSValue for ints, doubles and strings.
Change-Id: I18ce226c21168087ce280cb05aa0e250bd3187d9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Lowers the barrier for other debugger backends.
Change-Id: I09e0ad09548b6b4220175245cc0d845ac5aa29d0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This introduces a dumper types abstraction layer with classes
Dumper.{Value,Type,Field} wrapping either gdb.{Value,Type,Field}
or lldb.{SBValue,SBType,SBField} and uses it to move
to more direct memory accesses in the dumper implementation.
This way we can use duck typing for artificial intermediate
objects eliminating the need for {gdb.Value,lldb.SBValue}.cast()
in some case which are flaky in general and typically not
available in release builds.
As consequence QRegion and QVariant dumper work without debug
info now.
Change-Id: Iea2411175ef67f2bf651ee7eaade9879ed5ceba1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>