There have been cases observed where 'p QArrayData::shared_null' finds
valid symbols that are not found using gdb.lookup_symbols. The cause
for that is unknown.
Apply an expensive workaround by checking for (the equivalent of)
a working 'p QArrayData::shared_null' but execute it only when
a libQt5Core was found. This keeps the overhead for non-Qt setups
at a bearable (unsuccessful) iteration over known shared object
names.
Change-Id: Id398673b938d3c3a72c24317abdbefbe793e54df
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
It has a function directly doing that, use it instead of
guessing (badly, in some cases)
Change-Id: I1ce317c28d60f820f8e868e3c0c5a665f8de6cb7
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>
Some code path did not resolve typedefs when looking up
struct members by name, making e.g. the BoostList dumper
fail for LLDB.
Change-Id: I7adf235cff3941574cab9f03d6f15ec5f3e2f0bd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Use Python's list and dict output directly, instead of
a manually stringified version thereof. Also, report
milliseconds instead of microseconds.
Change-Id: Ibcbdea732e7ecc58fd672bc5da794832215865b4
Reviewed-by: hjk <hjk@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>
The native void type returns errors when accessing for example size
or name.
Change-Id: Ia5826ff4894eb7205d37a15661b82d9410171413
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The previously defined size of zero resulted in a number
of division by zero exceptions.
Change-Id: I3faed573bb15b9b9fd825281b8f9b0c15a02a7de
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Check for Pointer(Pointer(Char)) instead of a 'char **' name
which fails to match 'char**'.
Change-Id: Ie3d523924e64156a32df6db5c87997bb88f125a1
Reviewed-by: hjk <hjk@qt.io>
Use the fact that the order of the first three vtable entries of a
QObject is fixed and the size of their implementations is roughly
known.
Change-Id: I3d13f594cb1c1f162a520da18b2bc2aaba852092
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This is a partial revert of the type id change (bd2653fb) to get
the case of virtual bases work again, as it falls back to native
field accesses everywhere we have native types.
This is likely to be a performance regression with CDB/Python,
but since this combination is experimental and not used by
default in 4.2 getting GDB/LLDB right is more important.
Medium term we might want to have a more fine-grained approach
to use of type ids (e.g. use native field accesses on a case-by
-case base only for type with virtual inheritance)
Change-Id: I239111e6ce5f3365b750068bfc4dafb12be1d53c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The evaluate function of the cdb python module returns an integer
representing the address of the evaluated expression. If the expression
does not evaluate to a pointer the python module currently returns a
NoneType.
Change-Id: Ifc77109ef2161a3895a7661789f05134a4b64168
Reviewed-by: David Schulz <david.schulz@qt.io>
Looking up 'void' is known to cause hick ups.
Change-Id: I4c4b3bae5b5ac572404156edbd457003fbbf53f3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
QStringData is a typedef for QTypedArrayData<unsigned short>.
Cdb doesn't return typedefed type names, but the original type.
So we just need to call the QStringData dumper from the QTypedArrayData
dumper.
Change-Id: Id4e17ea8af3888e17c0d40bd9dcc5678490e845f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
"Separate display" can be triggered for QRasterPlatformPixmap on
the embeddded QImage.
Task-number: QTCREATORBUG-17107
Change-Id: Ib54a6f76f634b0dcf601836dc10609f212581d14
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Calling functions is currently not supported in the
cdb python dumper.
Change-Id: I07da5ba93ea3ad838e758ca79062ae9aa4e8fabc
Reviewed-by: hjk <hjk@qt.io>