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 result might not make sense, but the user should
have the option to check for himself.
Change-Id: I1792452906a5a27fd57b8f531792e63ef63033c8
Reviewed-by: hjk <hjk@qt.io>
The api doesn't expect empty arrays and doesn't validate indices
before accessing them.
Change-Id: I6d6fde9eec6d65d5db351be821fed892a77fabc1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Directly looking up array and pointer types is more
likely to fail than looking up the target type.
Change-Id: Icea8320e2eedd34f6d81692c5eacf50f644100bc
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>
A truly empty base wouldn't need content, but LLDB 3.8 reports declared
but not defined undistinguishable from empty bases. At least for the
common case of a single inheritance class we can continue dumping by
fake base class contents by fake the contents by using the whole derived
object's data.
Change-Id: I82d595b985ec1289d8abce5fccd217057d2d2d44
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The layout of a QV4Value has changed in Qt Declarative change 2afb54fb.
Change-Id: Iab618cc128be242c786b9a7460e80e8e49ee6544
Reviewed-by: hjk <hjk@qt.io>
The 'output' bit is inserted at report time, not at callback
script generation time.
Change-Id: Ibb5c9b09d8391d1be86b8f110e32ab1c90f6bab2
Reviewed-by: David Schulz <david.schulz@qt.io>
This effectively fixes the LLDB dumper for std::deque and std::stack by
avoiding a code path in which LLDB returns wrong data (the type and
offset for the _Deque_iterator::_M_first member - surprisingly the
other three members there get reported correctly).
Change-Id: Iae1ba8b81987442ed2d486b383a145a77ce49cd7
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This still does not solve the QFile dumper test fail with LLDB/Linux,
but its one obstactle less. The remaining one is LLDB not reporting
the QFile base object size at all.
Change-Id: I3144cf9469c4456d21b8c220c9df1cd890348491
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
More compact display and arbitrary inner types.
Change-Id: I68bc1f5cc88f51e993e6e8a91556d9d745a2574a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
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>