Commit Graph

1467 Commits

Author SHA1 Message Date
hjk
a225158c24 Debugger: Simplify dumping of paired items
Change-Id: I191801489d88c6abd15c6f3cd1cc6df97c8668d6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 15:12:14 +00:00
hjk
9d7a1fcb0f Debugger: Add a QStandardItem dumper
Change-Id: I503b17e1f36158a774dcf096b19ba628f0cc0205
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 09:51:40 +00:00
David Schulz
75303523ef Debugger: Fix std::deque python dumper for msvc
Change-Id: Iffbc3dffef6a3dc941fde024eac1e5e690ddb1c8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-24 08:46:52 +00:00
David Schulz
1df8f19257 Debugger: Create reference types for arrays and pointers
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>
2016-11-24 05:44:40 +00:00
hjk
e9f0f37070 Debugger: Robustify QRegExp dumper
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>
2016-11-23 11:23:04 +00:00
David Schulz
c8bb93de6b Debugger: Do not print warning for auto padding
Change-Id: I5fc1cf185fdf9d3928a68e952aeb9fd39fe87c8a
Reviewed-by: hjk <hjk@qt.io>
2016-11-23 08:26:21 +00:00
hjk
286f089e55 Debugger: Fake contents of empty base classes with LLDB
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>
2016-11-21 13:34:03 +00:00
David Schulz
b04602396b Debugger: Detect base classes in cdbbridge
Change-Id: I6a422bd70e6a28acd390ec9d01a14331b41168c0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-21 12:47:22 +00:00
Orgad Shaneh
6d1d1a4416 Merge remote-tracking branch 'origin/4.2'
Change-Id: I957c22020fbacb2f631220b0cdc7fa16a782798b
2016-11-21 10:25:45 +02:00
hjk
fa5cd03c11 Debugger: Add libc++ std::{deque,stack} dumpers
Change-Id: Ibf95c76b89fb7673241e680c233c7514c667f261
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 16:27:07 +00:00
hjk
96b907a1e8 Debugger: Fix QFiniteStack dumper and add missing auto test
Change-Id: If5f242f8d5184a0f2c62f6211f2ba89cda0cac07
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 13:32:05 +00:00
hjk
5b43ff7ad9 Debugger: Make QV4 dumper test pass with Qt 5.8.0
The layout of a QV4Value has changed in Qt Declarative change 2afb54fb.

Change-Id: Iab618cc128be242c786b9a7460e80e8e49ee6544
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 13:31:26 +00:00
hjk
3c3bccf0fb Debugger: Also support boost 1.55 unordered_maps
Change-Id: Id9ac4ecc8c61d4224f5840df2ec0a75c3c305825
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 12:11:56 +00:00
David Schulz
f8c86fd95f Debugger: Detect msvc virtual function pointer table
Change-Id: I51d82b692638932e35f22a5bb9286eecad577ed7
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 11:41:36 +00:00
hjk
c9067ff28c Debugger: Fix boost::unordered_set dumper for older boost versions
Somewhere between 1.48 and 1.58 structure layout changed.

Change-Id: Id8bcb473f364537342261dd2596f9f1bdacb5c79
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 08:21:05 +00:00
hjk
952c3e3b64 Debugger: Remove some of the inferior call in QVariant dumper
Change-Id: I1f1ac5c5ba59c36d3c3d6546b24a93d1b647f88a
Reviewed-by: David Schulz <david.schulz@qt.io>
2016-11-18 08:02:35 +00:00
David Schulz
eabccbdcb2 Debugger: Don't encapsulate integer in values for template args
Change-Id: Ib1bb2b01ff8eb1ed11c0f5785f3b4bb5f50c411a
Reviewed-by: hjk <hjk@qt.io>
2016-11-18 06:16:04 +00:00
hjk
572ba812d2 Debugger: Fix over-quoting in LLDB breakpoint reporting
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>
2016-11-17 14:47:16 +00:00
hjk
0334438b40 Debugger: Use more direct access in std::deque dumper
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>
2016-11-17 11:07:18 +00:00
hjk
84417cc122 Debugger: Use more direct access to QFile object guts
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>
2016-11-16 15:12:13 +00:00
Eike Ziller
4026864f38 Merge remote-tracking branch 'origin/4.2'
Conflicts:
	src/plugins/clangrefactoring/refactoringengine.cpp
	src/tools/clangrefactoringbackend/source/symbolfinder.cpp

Change-Id: I7c1c87f3b8ade43a07f6668565501042e967fa8b
2016-11-16 16:04:59 +01:00
hjk
82818cb90b Debugger: Improve QAtomicPointer dumper
More compact display and arbitrary inner types.

Change-Id: I68bc1f5cc88f51e993e6e8a91556d9d745a2574a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-16 13:34:04 +00:00
hjk
d7408f1fa8 Debugger: Make std::set::iterator dumper test pass for libc++
Change-Id: Ib5f9a0d71c130dcbcc14719b85f13582bbeaf74e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-16 10:05:17 +00:00
hjk
f42d44a481 Debugger: Recognize '-' as start of numeric template argument
Change-Id: Ibc0fd730655378dca3dc231dbad36981364ccf70
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-16 09:38:59 +00:00
hjk
b26400e8ef Debugger: Workaround gdb.lookup_symbol ignoring QArrayData::shared_null
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>
2016-11-16 09:32:42 +00:00
hjk
88ff6cd5ae Debugger: Use a more direct way to detect LLDB bitfields
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>
2016-11-16 08:38:35 +00:00
hjk
5b058ebb34 Debugger: Make QRegExp dumper test pass on Mac
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>
2016-11-16 08:37:18 +00:00
hjk
7e904c4d74 Debugger: Use explicit sizes in SSE dumpers
We know them, no need to guess.

Change-Id: I9788cfe178e4b013276f77df9aef5f4254818007
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-15 08:25:48 +00:00
hjk
e4e1bdb27a Debugger: Robustify typedef member lookup
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>
2016-11-14 12:37:31 +00:00
Orgad Shaneh
9c09ca9e42 Merge remote-tracking branch 'origin/4.2'
Change-Id: Ia98031eb87f1859c3736faa0cdd8b655e8a50689
2016-11-14 11:17:13 +02:00
hjk
77fe2959ce Debugger: Fix a few return value types in putCallItem uses
Change-Id: If66fb7bf6726dd8ec3f630d11c004ac24fae4d06
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-14 07:37:09 +00:00
hjk
e94c87f1a7 Debugger: More quote cosmetics
That's a follow-up to 88e79e16a6a91

Change-Id: I19725bca1c547bd961094f2d00e85e170b2be33e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-11-11 12:56:48 +00:00
hjk
8fce605913 Debugger: Display {un}signed char* similar char*
Task-number: QTCREATORBUG-17236
Change-Id: Ibbc58807572c6d1785f20948992f7a2c0dcc87f8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-11 09:07:41 +00:00
hjk
ae4d3c52e6 Debugger: Sanitize report of timings
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>
2016-11-10 20:14:25 +00:00
hjk
5fb2dc6e47 Debugger: Some dumper code cosmetics
Mostly quotes, remove some unneeded comments, ...

Change-Id: Ie3f410ac84e6cfe48e7971af948326abc21f2554
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 19:59:47 +00:00
hjk
67505423e6 Debugger: Dumper code cosmetics
Mostly left-overs from earlier reorganization.

Change-Id: I94f44efa1aab1e17de3c0fec6c230722149a1404
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 19:29:02 +00:00
hjk
75be7de6f4 Debugger: Make dynamic type lookup more robust
... in builds without debug information.

Change-Id: I3842736aebe5b7c6b46d0ea1eec540dc3c088920
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 19:22:25 +00:00
hjk
9040c4081e Debugger: Use less GDB inferior calls in normal field extraction
They are not usable in core files.

Change-Id: I2134b61f27c27862c12a679d0acf7bebc9fcc7a2
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
2016-11-10 16:20:37 +00:00
hjk
77bd581f49 Debugger: Re-enable access to dumper.Value by integral index
Task-number: QTCREATORBUG-17220
Change-Id: I63632a90e2518151b3bf20b1241c24f9808ec39c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-10 07:02:58 +00:00
hjk
537c8721b7 Debugger: Also display symbolic names for pointers
GDB-only for now.

Task-number: QTCREATORBUG-7550
Change-Id: I5a1096028e7454937b727419ec73f5fd979f4e8b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 10:44:29 +00:00
David Schulz
8736565c14 Debugger: Adjust to latest field changes
Change-Id: Ic4b3c8f0670a0d58e3d762ff0765862709901d2a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 09:57:05 +00:00
David Schulz
bf133156ee Debugger: Replace the native void type with a fake void type
The native void type returns errors when accessing for example size
or name.

Change-Id: Ia5826ff4894eb7205d37a15661b82d9410171413
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 09:57:00 +00:00
David Schulz
bf982fdfb9 Debugger: Set size of void to pointer size
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>
2016-11-07 09:56:57 +00:00
David Schulz
4411f91139 Debugger: Set value name in cdbbridge
Change-Id: Ida4068d86b4a0785fcd848cdc4957dcf3a328135
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-07 08:42:02 +00:00
hjk
6f1bd8bbdb Debugger: Consolidate name handling of anonymous structs
Change-Id: I44acfdccb5cad02c95270490e319caca334c8a4b
Reviewed-by: hjk <hjk@qt.io>
2016-11-04 21:21:26 +00:00
hjk
5276f35ae3 Debugger: Move base class numbering to generic code
Change-Id: I046a587f9fbf2a6345f3c0432a1b5937069a9304
Reviewed-by: hjk <hjk@qt.io>
2016-11-04 20:47:09 +00:00
hjk
7dbc62a182 Debugger: Robustify special argv detection
Check for Pointer(Pointer(Char)) instead of a 'char **' name
which fails to match 'char**'.

Change-Id: Ie3d523924e64156a32df6db5c87997bb88f125a1
Reviewed-by: hjk <hjk@qt.io>
2016-11-03 16:30:13 +00:00
hjk
1574f9cfca Debugger: Remove 'const' from more types again
Change-Id: I95e02a462e3b7614342e1515c96290a954d27dca
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-11-02 16:17:53 +00:00
hjk
3be260ecc5 Debugger: Replace 'first base' guessing logic
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>
2016-11-02 15:11:32 +00:00
Orgad Shaneh
410211e090 Merge remote-tracking branch 'origin/4.2'
Change-Id: Ibb932efece05a5f5613823fbc79c5b7601c73905
2016-11-02 16:52:58 +02:00